JDBC(Java DataBase Connectivity),Java数据库连接。是一种用于执行SQL语句的Java API,它是Java中的数据库连接规范。这个API由 java.sql.*,javax.sql.* 包中的一些类和接口组成。
JDBC优势:
- Java语言访问数据库操作完全面向抽象接口编程
- 开发数据库应用不用限定在特定数据库厂商的API
- 程序的可移植性大大增强
准备数据库驱动包,并添加到项目的依赖中:在项目中创建文件夹lib,并将依赖包mysql-connector-java-5.1.47.jar复制到lib中。再配置该jar包到本项目的依赖中:右键点击项目Open Module Settings,在Modules中,点击项目,配置Dependencies,点击+ JARS or Directories,将该lib文件夹配置进依赖中,表示该文件夹下的jar包都引入作为依赖。
JDBC访问数据库的基本步骤是什么?
1,加载驱动
2,创建数据库连接Connection
3,创建操作命令Statement
4,使用操作命令来执行SQL
5,处理结果集ResultSet
6,释放连接
// 加载JDBC驱动程序:
Class.forName("com.mysql.jdbc.Driver");
//DataSource类提供连接池的支持。
连接池在初始化时就创建一定数量的数据库连接,这些连接是可以重复使用的,
每次使用完数据库连接,调用connection.close()可以将Conncetion连接对象回收
DataSource ds = new MysqlDataSource();
((MysqlDataSource) ds).setUrl("jdbc:mysql://localhost:3306/test");
((MysqlDataSource) ds).setUser("root");
((MysqlDataSource) ds).setPassword("root");
Connection connection = ds.getConnection();
//建立SQL语句
String sql = " "
//创建操作命令
PreparedStatement preparedStatement = connection.createPreparedStatement();
//执行SQL语句
ResultSet resultSet= statement.executeQuery(sql);
//处理结果集
while (resultSet.next()) {
int id = resultSet.getInt("id");
//关闭连接
DButil.close(result,preparedStatement,connection);
开发中最常用的是PreparedStatement对象,与statement相比,其优点是:
1、性能:sql语句预编译 ,执行效率高于statement,数据库系统不会对相同的sql语句再次编译
2、安全:阻止常见sql注入【sql注入攻击就是从客户端输入一些非法的特殊字符,而使服务器端在构造sql语句的时候仍然能够正确构造,从而收集程序和服务器的信息和数据】
主要掌握两种执行SQL的方法:
executeQuery() 执行后返回单个结果集,通常用于select语句。
executeUpdate() 返回值是一个整数,指示受影响的行数,通常用于update、insert、delete语句。
数据库连接池的原理是什么?为什么要使用连接池?
1,数据库连接池就是为数据库连接建立一个“缓冲池”。即预先在缓冲池中放入一定数量的连接,当需要建立数据库连接时,只需从“缓冲池”中取出一个,使用完毕之后再放回去。可以通过设定连接池最大连接数来防止系统无尽的与数据库连接,我们可以通过连接池了解到数据库的连接数量、使用情况、及如何性能调优。创建连接使用的DataSource就提供连接池的支持。
2,数据库连接是一种非常费时的操作,使用连接池可以使多个操作共享一个连接,提高对数据库访问效率,同时便于对连接资源的管理。
JDBC的ResultSet是什么?
ResultSet是一个结果集,调用了ResultSet的next()可以读取下一行,如果没有更多数据会返回false。可以用for循环来遍历数据集,可以使用resultSet.get方法从1开始的序号来获取列数据。