Maison > Article > base de données > Premiers pas avec les bases du traitement des transactions MySQL
Les affaires font généralement référence aux choses à faire ou à faire. En termes informatiques, il s'agit d'une unité (unité) d'exécution de programme qui accède et peut mettre à jour divers éléments de données dans une base de données.
Les choses sont généralement utilisées lors de l'exploitation simultanée de plusieurs tables pour garantir l'intégrité des données utilisateur ~
Il existe deux méthodes principales de traitement des transactions dans MYSQL
1 Utilisez start, rollback et commit pour implémenter
commencer à démarrer une transaction
rollback to rollback. la transaction
Confirmation de la transaction de validation
2. Utilisez directement set pour modifier le mode de soumission automatique de mysql
Mysql soumet automatiquement par défaut, c'est-à-dire que si vous soumettez une requête, elle le fera. être exécuté directement ! Vous pouvez utiliser
set autocommit = 0 pour désactiver la soumission automatique
set autocommit = 1 pour activer la soumission automatique
pour implémenter le traitement des transactions.
Mais veuillez noter que lorsque vous utilisez set autocommit = 0, tous vos SQL ultérieurs seront traités comme des transactions jusqu'à ce que vous confirmiez avec commit ou rollback. Notez que lorsque vous terminez cette transaction, vous démarrez également une nouvelle transaction ! Selon la première méthode, utilisez uniquement la transaction actuelle comme transaction !
MYSQL ne prend en charge que le traitement des transactions pour les tables de données de type INNODB et BDB, et les autres types ne sont pas pris en charge. !
package shiwu; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.SQLException; public class test { public static void main(String[] args) { Connection conn = null; PreparedStatement ps1 = null; PreparedStatement ps2 = null; try { //加载驱动类 /* Class.forName("com.mysql.jdbc.Driver"); conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test","root","bjpowernode"); */ String myDriver="com.mysql.jdbc.Driver"; String url="jdbc:mysql://127.0.0.1:3306/test"; Class.forName(myDriver); conn= DriverManager.getConnection(url,"root","bjpowernode"); // 将自动提交设置为 false, //若设置为 true 则数据库将会把每一次数据更新认定为一个事务并自动提交 conn.setAutoCommit(false); ps1 = conn.prepareStatement("insert into t_user (username,pwd) values (?,?)");//?是占位符 ps1.setObject(1, "张三"); ps1.setObject(2, "666666"); ps1.execute(); System.out.println("插入一个用户张三"); try { // 发生异常,回滚在本事务中的操做 conn.rollback(); // 事务回滚:转账的两步操作完全撤销 conn.close(); Thread.sleep(3000); } catch (InterruptedException e) { e.printStackTrace(); } ps2 = conn.prepareStatement("insert into t_user (username,pwd) values (?)"); ps2.setObject(1, "李四"); ps2.setObject(2, "123456"); ps2.execute(); System.out.println("插入一个用户李四"); // conn.commit();//提交事务 } catch (ClassNotFoundException e) { e.printStackTrace(); try { } catch (Exception e1) { e1.printStackTrace(); } } catch (SQLException e) { e.printStackTrace(); }finally{ try { if(ps1!=null){ ps1.close(); } } catch (SQLException e) { e.printStackTrace(); } try { if(conn!=null){ conn.close(); } } catch (SQLException e) { e.printStackTrace(); } } } }注意:需要引入mysql-connector-java-5.6-bin.jar
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!