JDBC连接池与数据源

  • 建立数据库连接

(1) 加载驱动程序,向DriverManager注册


Class.forName(databaseDriver);

(2) 获得数据库连接的具体代表对象


Connection connection = 
    DriverManager.getConnection(jdbcURL, databaseUserName, databasePassword);

  • DriverManager: JDBC中管理所有数据库驱动类的对象

  • Connection: 一个Connection类型的对象代表一个数据库连接

  • 向数据库提交SQL

(1) Statement: 向数据库传递SQL语句的代表对象


Statement statement = connection.createStatement();

(2)

execute(): 啥都能干,返回true代表输入的是查询语句;返回false代表输入的是更新类的语句

executeUpdate(): 执行 create/drop/alter/insert/delete/update等会改变数据库内容的SQL语句,返回int代表影响的条目数量

executeQuery():执行select等查询的SQL语句,返回ResultSet代表查询的结果

(3) PreparedStatement:

预编译的Statement,如果我们需要多次执行类似的SQL语句或使用占位符时,应该使用这种

但是不是所有的数据库都支持 PreparedStatement

(4) CallableStatement:

执行数据库函数和存储过程的Statement(目前不知道干啥的)


  • 处理数据库返回的结果

通过ResultSet对象处理

(1) next()方法:

类似于 Iterator的next方法,返回越过的那行的数据

(2) getString(int index)、getInt(int index)、getFloat(int index)、getDouble(int index):

获取指定列序号的对应类型的值

(3) getString(String column)、getInt(String column)、getFloat(String column)、getDouble(String column):

获取执行列名称的对应类型的值


  • 释放数据库连接

(1) Connection、Statement(PreparedStatement和CallableStatement都是Statement的子类)、ResultSet在不用的时候都要释放资源,调用各自的close方法

(2) 关闭顺序与创建顺序相反


  • 数据库的表名、字段本身大小写不敏感,但是保存到表中的数据的大小写是敏感的

  • 建立数据库连接的这部分代码(获得Connection对象)通常是整个应用系统的性能瓶颈所在,所以出现了数据库连接池。核心思想是在内存中建立一个容器,保存预先建立好的数据库连接对象,把这些连接对象分配给需要的程序使用,当连接对象使用完成之后,不直接关闭连接,而是重新保存到容器。

你可能感兴趣的:(JDBC连接池与数据源)