专注于 JetBrains IDEA 全家桶,永久激活,教程
持续更新 PyCharm,IDEA,WebStorm,PhpStorm,DataGrip,RubyMine,CLion,AppCode 永久激活教程

事务的学习,从jdbc开始:jdbc对事务的支持与实现

  在使用spring对项目进行开发时,所有的事务都是由spring来管理的。这样一来我们就可以不需要操心事务,可以专心的处理业务代码。

  但是,事务的底层究竟是如何实现的呢?那就从jdbc开始学习。

  在使用jdbc与数据库交互时,都是通过Connection来操作的。

  默认情况下,Connection会自动提交事务,即每执行一条SQL语句,也就对应一个事务。

  但是在开发过程中,一个事务通常会管理一组SQL统一的提交,来保证数据的安全。

  这时,就需要Connection#setAutoCommit(false)来阻止Connection的自动提交,并通过Connection#setTransactionIsolation()设置事务的隔离级别(具体可以百度)。

  当sql准备完成后,再通过Connection#commit提交事务,或者通过Connection#rollback()回滚事务

  代码示例:

package jdbcTransactionDemo;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;

import org.junit.Test;

public class transactionDemo {
    @Test
    public void demo() throws ClassNotFoundException, SQLException {
        Class.forName("com.mysql.jdbc.Driver");
        Connection conn=DriverManager.getConnection("jdbc:mysql://127.0.0.1/test", "root", "123456");
        conn.setAutoCommit(false);//关闭自动提交机制
        conn.setTransactionIsolation(Connection.TRANSACTION_SERIALIZABLE);//设置事务隔离级别

        try {
            Statement stmt=conn.createStatement();
            int rows=stmt.executeUpdate("insert into user(user_name,password) values(\"小明\",\"psw123456\")");
            System.out.println(rows);
            rows=stmt.executeUpdate("update user set user_name=\"小红\" where user_name=\"小明\"");
            System.out.println(rows);
       
            conn.commit();//事务提交
        }catch (Exception e) {
            System.out.println("事务回滚了");
            e.printStackTrace();
            conn.rollback();//事务回滚
        }

    }
}

文章永久链接:https://tech.souyunku.com/34773

未经允许不得转载:搜云库技术团队 » 事务的学习,从jdbc开始:jdbc对事务的支持与实现

JetBrains 全家桶,激活、破解、教程

提供 JetBrains 全家桶激活码、注册码、破解补丁下载及详细激活教程,支持 IntelliJ IDEA、PyCharm、WebStorm 等工具的永久激活。无论是破解教程,还是最新激活码,均可免费获得,帮助开发者解决常见激活问题,确保轻松破解并快速使用 JetBrains 软件。获取免费的破解补丁和激活码,快速解决激活难题,全面覆盖 2024/2025 版本!

联系我们联系我们