2019独角兽企业重金招聘Python工程师标准>>>
在mysql中创建用户账户数据库(注意,count不能为负数,要设置无符号型)
添加数据
下面我们得到connection对象开始进行事务提交和回滚的操作
package com.lyb.test;
import static org.junit.Assert.*;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import org.apache.commons.dbutils.DbUtils;
import org.junit.Test;
import cn.itcast.jdbc.JdbcUtils;
public class MyTest {
@Test
public void test() {//回滚操作
try {
Connection conn=JdbcUtils.getConnection();//得到链接
conn.setAutoCommit(false);//关闭事务自动提交
String sql1="update bankuser set count=count-1000 where id=1";
String sql2="update bankuser set count=count+1000 where id=2";
try {
PreparedStatement ps2=conn.prepareStatement(sql2);
ps2.executeUpdate();//增加id为2的user的余额
PreparedStatement ps1=conn.prepareStatement(sql1);
ps1.executeUpdate();//扣除id为1的user的余额//如果id为1的user的余额为0,继续扣除发生异常,进入catch代码块进行回滚
conn.commit();//没有异常发生,事务提交
} catch (Exception e) {
conn.rollback();//捕获到异常就回滚
System.out.println("出现异常,但是已经进行回滚,你可以放心转账了");
// TODO Auto-generated catch block
//e.printStackTrace();
}finally{
DbUtils.close(conn);//关闭连接
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}