Heim  >  Artikel  >  Datenbank  >  Erste Schritte mit den Grundlagen der MySQL-Transaktionsverarbeitung

Erste Schritte mit den Grundlagen der MySQL-Transaktionsverarbeitung

PHPz
PHPzOriginal
2017-04-02 17:06:491159Durchsuche

1. MySQLWas ist eine Transaktion?

Angelegenheiten beziehen sich im Allgemeinen auf Dinge, die erledigt oder getan werden müssen. In der Computersprache bezieht es sich auf eine Programmausführungseinheit (Einheit), die auf verschiedene Datenelemente in einer Datenbank zugreift und diese aktualisieren kann.

2. MySQL-Transaktion Unter welchen Umständen wird es verwendet?

Dinge werden im Allgemeinen verwendet, wenn mehrere Tabellen gleichzeitig betrieben werden, um die Integrität von Benutzerdaten sicherzustellen~

3, MySQL TransaktionWie benutzt man?

Es gibt zwei Hauptmethoden der Transaktionsverarbeitung in MYSQL
1. Verwenden Sie begin, rollback und commit, um
begin, um eine Transaktion zu starten
rollback to rollback die Transaktion
Transaktionsbestätigung festschreiben
2. Verwenden Sie direkt set, um den automatischen Übermittlungsmodus von MySQL zu ändern
MySQL sendet standardmäßig automatisch, das heißt, wenn Sie eine Abfrage senden, wird dies der Fall sein direkt ausgeführt werden! Sie können
set autocommit = 0 verwenden, um die automatische Übermittlung zu deaktivieren
set autocommit = 1, um die automatische Übermittlung zu aktivieren
, um die Transaktionsverarbeitung zu implementieren.
Bitte beachten Sie jedoch, dass bei Verwendung von set autocommit = 0 alle Ihre nachfolgenden SQL-Anweisungen als Transaktionen verarbeitet werden, bis Sie mit Commit oder Rollback bestätigen. Beachten Sie, dass Sie mit dem Beenden dieser Transaktion auch eine neue Transaktion starten! Verwenden Sie gemäß der ersten Methode nur die aktuelle als Transaktion!

MYSQL unterstützt nur die Transaktionsverarbeitung für Datentabellen vom Typ INNODB und BDB, andere Typen werden nicht unterstützt. !

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

Das obige ist der detaillierte Inhalt vonErste Schritte mit den Grundlagen der MySQL-Transaktionsverarbeitung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn