JDBC是Java语言中用来规范客户端程序如何来访问数据库的应用程序接口,提供了诸如查询和更新数据库中数据的方法。简单来说,JDBC就是用Java对数据库实现一定操作的API。
下面,本文将浅谈用Java语言操作数据库进行事务管理的步骤。
JDBC操作数据库进行事务管理
1. 建立到特定数据库的连接
Connection con =DriverManager.getConnection(url,user,pwd);
此处的url,user,pwd建议在前面以字符串类型设定好,在DriverManager.getConnection方法中使用参数完成Connection对象的创建。
2. 创建 Statement 对象
Statement 对象用 Connection的方法createStatement 创建
Statement stmt = con.createStatement();
3. 使用 Statement 对象执行语句
Statement 接口提供了三种执行 SQL 语句的方法:executeQuery、executeUpdate
和execute
Statement 对象本身不包含SQL语句,必须给 Statement.execute 方法提供 SQL 语句作为参数。
-
方法 executeQuery 用于产生单个结果集的语句,例如 SELECT 语句。
-
方法 executeUpdate 用于执行 DML语句,如INSERT、UPDATE 或 DELETE 语句以及DDL句,例如 CREATE TABLE 和 DROP TABLE【方法executeUpdate,当它执行时语句即完成】
INSERT、UPDATE 或DELETE语句的效果是修改表中零行或多行中的一列或多列。executeUpdate的返回值是一个整数,指示受影响的行数(即更新计数)。
CREATE TABLE 或 DROP TABLE等不操作行的语句,executeUpdate 的返回值总为零。
- 方法execute用于执行返回多个结果集、多个更新计数或二者组合的语句。
4. 语句完成与提交
当连接处于自动提交模式时,其中所执行的语句在完成时将自动提交或还原。语句在已执行且所有结果返回时,即认为已完成。
con.setAutoCommit(false); //设置手动提交
手动提交模式下,通过Connection对象的方法完成事务的提交、回滚(搭配try-catch和execute方法)
connt.commit(); // 提交事务
connt.rollback(); // 回滚事务
实例:对职工表中指定ID员工信息做修改
职工表原始数据
要求:将张三的年龄作出修改
Java代码实现:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
public class jdbcdemo_test {
public static void main(String[] args) throws Exception{
//连接服务器
String url="jdbc:mysql:///db1";
String user="root";
String pwd="1234";
Connection connt =DriverManager.getConnection(url,user,pwd);
//定义sql
String sql="update stu set age=20 where id = 1";
Statement stmt = connt.createStatement(); //statement对象执行SQL语句
try {
// 开启事务
connt.setAutoCommit(false);
//执行sql处理事务
int count = stmt.executeUpdate(sql); //执行DML\DDL语句 ,返回影响的行数
System.out.println("受影响的行:"+count);
// 提交事务
connt.commit();
} catch (Exception throwables) {
// 回滚事务
connt.rollback();
throwables.printStackTrace();
}
System.out.println("操作完成");
}
}
程序运行结果:
数据库信息:
Java程序运行后数据库信息
参考资料:https://blog.csdn.net/weixin_35404745/article/details/114359791