在使用JDBC整合数据库连接操作时,如果需要用到事务,在去关闭Connection conn的时候
注意在关闭前 注意:最好这么做一下 避免下次别人用的时候也自动开启事务,但是自己测试C3P0时候,连接池会自动将状态更新,也就是说,即使关闭前不设置为true,默认连接池也会将状态更新,
这里意思就是最好这么干一下,万一呢 主要讲个思想,大多数连接池应该都做好了这一点,应该改是不需要的
将conn.setAutoCommit(true);因为此时并非真正关闭,而是将连接放回连接池.
原因在你已经开启事务,如果下次有人需要重用你这个连接,本身事务还是开启的
都是maven项目
不是边写边记录,全部写完了自己做个笔记
1.JDBC整合C3P0连接池
依赖
<dependencies><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.30</version></dependency><dependency><groupId>com.mchange</groupId><artifactId>c3p0</artifactId><version>0.9.5.2</version></dependency><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version><scope>compile</scope></dependency> </dependencies>
方式1
方式2 配置文件的方式
获取连接的工具类
这里无需担心并发
2.JDBC整合DBCP连接池
依赖
<dependencies><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.30</version></dependency><!--DBCP需要引入两个jar包--><dependency><groupId>commons-dbcp</groupId><artifactId>commons-dbcp</artifactId><version>1.4</version></dependency><dependency><groupId>commons-pool</groupId><artifactId>commons-pool</artifactId><version>1.5.5</version></dependency><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version><scope>compile</scope></dependency> </dependencies>
方式1
方式2 配置文件方式
获取连接工具类
3.JDBC整合Druid连接池
依赖
<dependencies><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.30</version></dependency><dependency><groupId>com.alibaba</groupId><artifactId>druid</artifactId><version>1.2.15</version></dependency><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version><scope>compile</scope></dependency> </dependencies>
方式1
方式2 配置文件方式
我这里就直接封装了