JDBC执行SQL语句
名词解释
- ODBC: Open Database Connectivity
- JDBC: Java Database Connectivity
- JDBC API: 管理数据库,用于编成
- JDBC Driver API: 连接数据库,加载数据库驱动
JDBC API
DriverManager
- 装载驱动程序
Connection
- 连接数据库
常用方法
| 方法 | 说明 | 返回类型 |
|---|---|---|
| createStatement() | 创建查询对象 | Statement |
| prepareStatement() | 创建预编译查询对象 | PreparedStatement |
| prepareCall(“{call 存储过程名(?, ?, ?…)}“) | 每个?表示一个参数 | CallableStatement |
| commit() | 提交更改至数据库,返回执行的记录数 | int |
| close() | 关闭数据库连接 |
Statement
- 执行SQL语句
常用方法
| 方法 | 说明 | 返回类型 |
|---|---|---|
| executeQuery(String SQL查询语句) | 执行该SQL查询 | ResultSet |
| executeUpdate(String SQL语句) | 执行Insert、Update、Delete语句,返回执行成功的记录数 | int |
| close() | 关闭查询对象,释放资源 |
PreparedStatement
- 执行预编译的SQL语句
常用方法
| 方法 | 说明 | 返回类型 |
|---|---|---|
| executeQuery() | 执行编译后的SQL查询 | ResultSet |
| executeUpdate() | 执行编译后的Insert、Update、Delete语句,返回执行成功的记录数 | int |
| setType(int i, Type x) | 将预编译的第i个占位符设置为x,i从1开始 |
CallableStatement
- 执行存储过程
常用方法
| 方法 | 说明 | 返回类型 |
|---|---|---|
| setType(int i, Type x) | 将存储过程第i个值设置为x | |
| executeUpdate() | 执行存储过程 |
ResultSet
- 查询结果集
常用方法
| 方法 | 说明 | 返回类型 |
|---|---|---|
| next() | 移动至下一条记录,当到达末尾是,返回false | boolean |
| getType(“字段名”) | 返回Type类型的该字段的值 | Type |
JDBC Driver API
- 面向开发商,使数据库驱动适配Java
连接
依赖
1 | import java.sql.Connection;//用于连接数据库 |
语法
1 | Class.forName("驱动名"); |
MySQL
驱动名:”com.mysql.jdbc.Driver”
地址:”jdbc:mysql://ip:port[/数据库]”
Oracle
驱动名:”oracle.jdbc.driver.OracleDriver”
地址:”jdbc:oracle:thin:@ip:port[:数据库]”
查询
Statement
依赖
1 | java.sql.Statement; //用于执行SQL语句 |
语法
1 | //创建查询对象 |
PreparedStatement
依赖
1 | java.sql.PreparedStatement; |
语法
1 | //创建预编译SQL对象,SQL语句中的变量用`?`代替 |
结果集的使用
依赖
1 | java.sql.ResultSet; //用于保存结果集 |
遍历结果集
1 | while(resultSet.next()){ |
更新/插入/删除
依赖
1 | java.sql.Statement; |
语法
1 | //执行SQL语句,并返回成功执行的记录数 |
回滚
- 当执行SQL语句失败时(抛出
SQLException异常),应执行回滚操作
依赖
1 |
|
语法
1 | try{ |
资源释放
- 执行结束后应释放占用资源
- 按照创建的顺序的倒序,关闭各资源,可使用
try-with-resources。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 AlMirai!