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