具体的讲解穿插在代码中
import java.io.FileInputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;
import java.util.Properties;
public class TransactionTest {
// 常规操作
private String driver;
private String url;
private String user;
private String pass;
public void initparam(String fileName)throws Exception{
Properties prop = new Properties();
prop.load(new FileInputStream(fileName));
driver = prop.getProperty("driver");
url = prop.getProperty("url");
user = prop.getProperty("user");
pass = prop.getProperty("pass");
}
public void inserInTransaction(String [] sqls) throws Exception{
Class.forName(driver);
try(Connection conn = DriverManager.getConnection(url, user, pass)){
conn.setAutoCommit(false);
// 将connection的自动提交关掉
try(
Statement stmt = conn.createStatement())
{
for (String sql : sqls){
stmt.executeUpdate(sql);
}
}
conn.commit();
// 在这里显示地提交
}
}
public static void main(String args[]) throws Exception{
TransactionTest tt = new TransactionTest();
tt.initparam("mysql.ini");
String[] sqls = new String[]{
"insert into students values('S1', 'lala', 'f', 21, 'D01')",
"insert into students values('S5', 'lblb', 'm', 21, 'D01')",
"insert into students values('S6', 'lclc', 'f', 21, 'D01')",
};
tt.inserInTransaction(sqls);
}
}