事务
ACID原则:保证数据的安全
开启事务
事务提交 commit()
事务回滚 rollback()
关闭事务
转账:
a:1000
b:1000
a(900) - -100--> b(1100)
Junit单元测试
web.xml 依赖
junit
junit
4.11
简单使用
@Test注解只有在方法上有效,加了这个注解就可以直接运行
package com.yu.test;
import org.junit.Test;
public class Junit {
@Test
public void test(){
System.out.println("hello");
}
}
数据库
junit测试类
package com.yu.test;
import org.junit.Test;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class Junit {
@Test
public void test() {
String url = "jdbc:mysql://localhost:3306/jdbc?useUnicode=true&characterEncoding=utf-8";
String username = "root";
String password = "123456";
Connection connection = null;
//加载驱动
try {
Class.forName("com.mysql.cj.jdbc.Driver");
//连接数据库
connection = DriverManager.getConnection(url, username, password);
//通知数据库开启事务 false开启
connection.setAutoCommit(false);
String sql1 = "update account set money = money - 100 where name ='A'";
connection.prepareStatement(sql1).executeUpdate();
//制造错误
//int i = 1/0;
String sql2 = "update account set money = money + 100 where name ='B'";
connection.prepareStatement(sql2).executeUpdate();
connection.commit();//以上两条sql都执行成功就提交事务
System.out.println("success");
} catch (Exception e){
try {
connection.rollback();
} catch (SQLException ex) {
ex.printStackTrace();
}
e.printStackTrace();
} finally {
try {
connection.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}