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,通知那些等待的线程,有新的连接可以借用了。

posted @ 2018-04-09 00:08  lspa  阅读(98)  评论(0编辑  收藏  举报