1.事务:将多条SQL语句绑定在一块儿要么都成功,要么都不成功java
2.应用:转帐mysql
3.代码sql
package cn.ma.transitionmanager.jdbc;数据库
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Date;
import java.util.UUID;dom
import org.junit.Test;ui
public class TransitionManager {
@Test//想数据库插入数据
public void testInsertDataTransitionManager() throws Exception{
Connection conn=null; //链接
Statement stmt=null; //
try {
//1.加载驱动
Class.forName("com.mysql.jdbc.Driver");
//2.得到链接
conn =DriverManager.getConnection("jdbc:mysql://localhost:3306/day20", "root", "root");
//3.得到执行对象
stmt = conn.createStatement();
//4.执行SQL
UUID uuid = UUID.randomUUID();
Date d = new Date();
String time = d.toLocaleString().toString();
String sql="insert into t_transitionManager values('"+uuid+"','张三','1000','666','"+time+"')";
stmt.executeUpdate(sql);
UUID uuid2 = UUID.randomUUID();
String time2 = d.toLocaleString().toString();
String sql2="insert into t_transitionManager values('"+uuid2+"','李四','1000','999','"+time+"')";
stmt.executeUpdate(sql2);spa
} catch (ClassNotFoundException e) {
e.printStackTrace();
}finally {
//6.关闭资源
stmt.close();
conn.close();
}
}
@Test//更新数据库数据
public void testupdateDataTransitionManager() throws Exception{
Connection conn=null; //链接
Statement stmt=null; //
try {
//1.加载驱动
Class.forName("com.mysql.jdbc.Driver");
//2.得到链接
conn =DriverManager.getConnection("jdbc:mysql://localhost:3306/day20", "root", "root");
//3.得到执行对象
stmt = conn.createStatement();
//4.执行SQL
conn.setAutoCommit(false);//开启事务。手动提交事务
String sql="update t_transitionManager set money=money-100 where accountnumber='999'";
String sql2="update t_transitionManager set money=money+100 where accountnumber='666'";
stmt.executeUpdate(sql);
int i =10/0;//异常代码
stmt.executeUpdate(sql2);
conn.commit();//提交事务
} catch (ClassNotFoundException e) {
e.printStackTrace();
conn.rollback();//回滚事务
}finally {
//6.关闭资源
//关闭资源
try {
stmt.close();
} catch (SQLException e) {
e.printStackTrace();
}
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}对象
4.表结构事务
5.注意点资源
开始事务必须在SQL执行以前