Home  >  Article  >  Database  >  Getting Started with MySQL Transaction Processing Basics

Getting Started with MySQL Transaction Processing Basics

PHPz
PHPzOriginal
2017-04-02 17:06:491127browse

1. mysqlWhat is a transaction?

# Affairs generally refers to things to be done or done. In computer terms, it refers to a program execution unit (unit) that accesses and mayupdate various data items in the database.

2. mysql transaction Under what circumstances is it used?

Things are generally used when operating multiple tables concurrently to ensure user data integrity~

3, mysql transactionHow to use?

There are two main methods of transaction processing in MYSQL
1. Use begin, rollback, and commit to implement
begin to start a transaction
rollback transaction rollback
commit transaction confirmation
2. Directly use set to change the automatic submission mode of mysql
Mysql automatically submits by default, that is, if you submit a query, it will be executed directly! You can disable automatic submission by
set autocommit = 0
set autocommit = 1 and enable automatic submission
to implement transaction processing.
But please note that when you use set autocommit = 0, all your subsequent SQL will be processed as transactions until you confirm it with commit or rollback. Note that when you end this transaction, you also start a new transaction! According to the first method, only the current one is used as a transaction!

MYSQL only supports transaction processing for INNODB and BDB type data tables, and other types are not supported. !

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

The above is the detailed content of Getting Started with MySQL Transaction Processing Basics. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn