Maison > base de données > tutoriel mysql > Premiers pas avec les bases du traitement des transactions MySQL

Premiers pas avec les bases du traitement des transactions MySQL

PHPz
Libérer: 2017-04-02 17:06:49
original
1175 Les gens l'ont consulté

1. mysqlQu'est-ce qu'une transaction ?

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.

2. transaction mysql dans quelles circonstances est-elle utilisée ?

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 ~

3, mysql transactionComment utiliser ?

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
Copier après la connexion

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal