>  기사  >  Java  >  Java에서 트랜잭션을 사용하는 경우

Java에서 트랜잭션을 사용하는 경우

王林
王林원래의
2020-02-03 10:29:273204검색

Java에서 트랜잭션을 사용하는 경우

언제 거래를 사용하나요?

1. 실제 비즈니스에서 데이터 조각을 두 테이블에 동시에 저장해야 하고 두 테이블의 데이터를 동기화해야 하는 경우 데이터를 보장하기 위해 트랜잭션 관리 메커니즘을 사용해야 합니다. 동기화. 예를 들어 테이블 1에 데이터가 성공적으로 삽입되었지만 테이블 2에 삽입되지 못한 경우 오류가 발생하면 해당 데이터가 롤백되고 데이터 지속성 작업이 종료됩니다.

2. 금융 업계의 소프트웨어 개발은 ​​거래 처리를 엄격하게 강조합니다. 예를 들어 일반적인 이체 작업에서는 한 쪽의 계좌 금액이 줄어들고, 이는 상대방의 계좌 금액이 늘어나는 과정에 해당합니다. 거래 메커니즘을 사용하지 않으면 전송이 성공할 수 없습니다.

무료 학습 비디오 튜토리얼 공유: java 비디오 튜토리얼

JDBC 트랜잭션 처리를 예로 들어보세요:

public static void main(String[] args) throws SQLException, ClassNotFoundException {
        Class.forName("com.mysql.jdbc.Driver");
        String url = "jdbc:mysql://localhost:3306/user";
        String user = "root";
        String password = "123456";
        Connection con = (Connection) DriverManager.getConnection(url, user, password);
        try {
            //取消自动提交
            //如果设成false,那就是JDBC不自动提交,需要手动的使用commit或者rollback来进行提交或者回滚数据. 
            con.setAutoCommit(false);
            Statement stmt = (Statement) con.createStatement();
            //进行数据插入
            String sql = "insert into users(email,password) values('" + "jack@163.com" + "','" + "jack" + "');";
            boolean flag = stmt.execute(sql);
            System.out.println(flag);
            //人为制造一个错误,结果就是数据库并没有插入这条数据,也就是数据发生了回滚
            //异常被捕获之后,就不在执行下面的语句,而是执行catch中的语句
            //如果没有异常,数据就会被提交到数据库
            System.out.println(1/0);
            //手动提交
            con.commit();
        } catch (Exception e) {
            //如果发生错误,就回滚
            con.rollback();
        } finally {
            con.close();
        }
    }

추천 관련 기사 튜토리얼: Java 소개 튜토리얼

위 내용은 Java에서 트랜잭션을 사용하는 경우의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.