JDBC(2)
在事务中的多个操作,要么都成功,要么都失败
通过 c.setAutoCommit(false);关闭自动提交
使用 c.commit();进行手动提交
在22行-35行之间的数据库操作,就处于同一个事务当中,要么都成功,要么都失败
如果多个sql语句操作中,有一条出错导致数据出错,但如果使用事务一旦有一句语句错误将都不提交。
MYSQL表的类型必须是INNODB才支持事务,所以要
alter table hero ENGINE = innodb;
查看表的类型
show table status from 表;
有个前提就是当前的MYSQL服务器的本身要支持INNOB。
数据库池的设计方法
1. ConnectionPool() 构造方法约定了这个连接池一共有多少连接
2. 在init() 初始化方法中,创建了size条连接。 注意,这里不能使用try-with-resource这种自动关闭连接的方式,因为连接恰恰需要保持不关闭状态,供后续循环使用
3. getConnection, 判断是否为空,如果是空的就wait等待,否则就借用一条连接出去
4. returnConnection, 在使用完毕后,归还这个连接到连接池,并且在归还完毕后,调用notifyAll,通知那些等待的线程,有新的连接可以借用了。