MySQL事務(wù)處理基礎(chǔ)基礎(chǔ)
發(fā)表時間:2023-09-03 來源:明輝站整理相關(guān)軟件相關(guān)文章人氣:
[摘要]1、mysql事務(wù)是什么?事務(wù),一般是指要做的或所做的事情。在計算機術(shù)語中是指訪問并可能更新數(shù)據(jù)庫中各種數(shù)據(jù)項的一個程序執(zhí)行單元(unit)。2、mysql事務(wù)什么情況下使用? 事物一般用在并發(fā)操作多張表的時候使用,用于保證用戶的數(shù)據(jù)完整性~3、mysql事務(wù)怎么用?MYSQL的事務(wù)處理主要有...
1、mysql事務(wù)是什么?
事務(wù),一般是指要做的或所做的事情。在計算機術(shù)語中是指訪問并可能更新數(shù)據(jù)庫中各種數(shù)據(jù)項的一個程序執(zhí)行單元(unit)。
2、mysql事務(wù)什么情況下使用?
事物一般用在并發(fā)操作多張表的時候使用,用于保證用戶的數(shù)據(jù)完整性~
3、mysql事務(wù)怎么用?
MYSQL的事務(wù)處理主要有兩種方法
1.用begin,rollback,commit來實現(xiàn)
begin開始一個事務(wù)
rollback事務(wù)回滾
commit 事務(wù)確認(rèn)
2.直接用set來改變mysql的自動提交模式
mysql默認(rèn)是自動提交的,也就是你提交一個query,就直接執(zhí)行!可以通過
set autocommit = 0 禁止自動提交
set autocommit = 1 開啟自動提交
來實現(xiàn)事務(wù)的處理。
但要注意當(dāng)用set autocommit = 0 的時候,你以后所有的sql都將作為事務(wù)處理,直到你用commit確認(rèn)或 rollback結(jié)束,注意當(dāng)你結(jié)束這個事務(wù)的同時也開啟了新的事務(wù)!按第一種方法只將當(dāng)前的做為一個事務(wù)!
MYSQL只有 INNODB和BDB類型的數(shù)據(jù)表才支持事務(wù)處理,其他的類型是不支持的!
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 {
//加載驅(qū)動類
/* 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");
// 將自動提交設(shè)置為 false,
//若設(shè)置為 true 則數(shù)據(jù)庫將會把每一次數(shù)據(jù)更新認(rèn)定為一個事務(wù)并自動提交
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 {
// 發(fā)生異常,回滾在本事務(wù)中的操做
conn.rollback();
// 事務(wù)回滾:轉(zhuǎn)賬的兩步操作完全撤銷
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();//提交事務(wù)
} 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事務(wù)處理基礎(chǔ)入門的詳細(xì)內(nèi)容,更多請關(guān)注php中文網(wǎng)其它相關(guān)文章!
學(xué)習(xí)教程快速掌握從入門到精通的SQL知識。