浅谈JDBC操作MySQL数据库实现事务管理

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

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值