支持事物:引擎为InnoDB
右键–>设计表–>引擎设为InnoDB
引擎设为InnoDB:才能支持事务
持久性测试
默认updata写入数据库,不默认写入setAutoCommit(false)
不手动提交
数据库结果:
手动提交
数据库结果:
一致性
数据库:
引擎为InnoDB
代码中设置错误:中间出错一个都进不来
运行结果:
数据库:
引擎不是InnoDB
MyISAM与InnoDB 的区别
运行代码结果:
数据库:
隔离性
读未提交
线程1 write() new数据 write() 回滚为old 数据
线程2 read() 读new数据 (读脏数据)
public static void main(String[] args) {
//读未提交
ExecutorService service = Executors.newCachedThreadPool(); //创建线程池
//两个线程同时进行
service.execute(()->{
write();
});//入表达式
service.execute(()->{
read();
});
service.shutdown();
}
public static void write(){
Connection con = JdbcUtil.getConnection();
PreparedStatement pstmt = null;
try {
con.setAutoCommit(false);
pstmt = con.prepareStatement("update grade set name=? where id=?");
pstmt.setString