MySQL事務處理基礎基礎
發表時間:2023-09-03 來源:明輝站整理相關軟件相關文章人氣:
[摘要]1、mysql事務是什么?事務,一般是指要做的或所做的事情。在計算機術語中是指訪問并可能更新數據庫中各種數據項的一個程序執行單元(unit)。2、mysql事務什么情況下使用? 事物一般用在并發操作多張表的時候使用,用于保證用戶的數據完整性~3、mysql事務怎么用?MYSQL的事務處理主要有...
事務,一般是指要做的或所做的事情。在計算機術語中是指訪問并可能更新數據庫中各種數據項的一個程序執行單元(unit)。
2、mysql事務什么情況下使用?
事物一般用在并發操作多張表的時候使用,用于保證用戶的數據完整性~
3、mysql事務怎么用?
MYSQL的事務處理主要有兩種方法
1.用begin,rollback,commit來實現
begin開始一個事務
rollback事務回滾
commit 事務確認
2.直接用set來改變mysql的自動提交模式
mysql默認是自動提交的,也就是你提交一個query,就直接執行!可以通過
set autocommit = 0 禁止自動提交
set autocommit = 1 開啟自動提交
來實現事務的處理。
但要注意當用set autocommit = 0 的時候,你以后所有的sql都將作為事務處理,直到你用commit確認或 rollback結束,注意當你結束這個事務的同時也開啟了新的事務!按第一種方法只將當前的做為一個事務!
MYSQL只有 INNODB和BDB類型的數據表才支持事務處理,其他的類型是不支持的!
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
以上就是MySQL事務處理基礎入門的詳細內容,更多請關注php中文網其它相關文章!
學習教程快速掌握從入門到精通的SQL知識。