Maison  >  Article  >  Java  >  Quand utiliser les transactions en Java

Quand utiliser les transactions en Java

王林
王林original
2020-02-03 10:29:273194parcourir

Quand utiliser les transactions en Java

Quand utiliser les transactions ?

1. Si dans une entreprise réelle, une donnée doit être stockée dans deux tables en même temps et que les données des deux tables doivent être synchronisées, alors un mécanisme de gestion des transactions doit être utilisé pour assurer la synchronisation des données. Si une erreur se produit, par exemple, l'insertion des données dans la table 1 réussit mais l'insertion des données dans la table 2 échoue, elle sera alors annulée et l'opération de persistance des données sera terminée.

2. Le développement de logiciels dans le secteur financier attache strictement une importance au traitement des transactions. Par exemple, dans nos opérations de transfert courantes, le montant du compte d'une partie diminue, ce qui correspond à l'augmentation du montant du compte de l'autre partie. Ce processus nécessite l'utilisation d'un mécanisme de transaction, sinon le transfert ne pourra pas réussir.

Partage de didacticiels vidéo d'apprentissage gratuits : Tutoriel vidéo Java

Prenons l'exemple du traitement des transactions 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();
        }
    }

Tutoriels d'articles connexes recommandés : Tutoriel de démarrage Java

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn