c3p0封装

2019-03-12 08:21:30来源:博客园 阅读 ()

新老客户大回馈,云服务器低至5折

配置文件

1 <?xml version="1.0" encoding="UTF-8"?>
2 <c3p0-config>
3     <default-config>
4         <property name="user">root</property>
5         <property name="password">root</property>
6         <property name="driverClass">com.mysql.jdbc.Driver</property>
7         <property name="jdbcUrl">jdbc:mysql:///day35</property>
8     </default-config>
9 </c3p0-config> 

Java

 1 package utils;
 2 
 3 import java.sql.Connection;
 4 import java.sql.ResultSet;
 5 import java.sql.SQLException;
 6 import java.sql.Statement;
 7 
 8 import javax.sql.DataSource;
 9 
10 import com.mchange.v2.c3p0.ComboPooledDataSource;
11 
12 public class DataSourceUtils {
13 
14     private static DataSource dataSource = new ComboPooledDataSource();
15 
16     private static ThreadLocal<Connection> tl = new ThreadLocal<Connection>();
17 
18     // 直接可以获取一个连接池
19     public static DataSource getDataSource() {
20         return dataSource;
21     }
22 
23     public static Connection getConnection() throws SQLException {
24         return dataSource.getConnection();
25     }
26 
27     // 获取连接对象
28     public static Connection getCurrentConnection() throws SQLException {
29 
30         Connection con = tl.get();
31         if (con == null) {
32             con = dataSource.getConnection();
33             tl.set(con);
34         }
35         return con;
36     }
37 
38     // 开启事务
39     public static void startTransaction() throws SQLException {
40         Connection con = getCurrentConnection();
41         if (con != null) {
42             con.setAutoCommit(false);
43         }
44     }
45 
46     // 事务回滚
47     public static void rollback() throws SQLException {
48         Connection con = getCurrentConnection();
49         if (con != null) {
50             con.rollback();
51         }
52     }
53 
54     // 提交并且 关闭资源及从ThreadLocall中释放
55     public static void commitAndRelease() throws SQLException {
56         Connection con = getCurrentConnection();
57         if (con != null) {
58             con.commit(); // 事务提交
59             con.close();// 关闭资源
60             tl.remove();// 从线程绑定中移除
61         }
62     }
63 
64     // 关闭资源方法
65     public static void closeConnection() throws SQLException {
66         Connection con = getCurrentConnection();
67         if (con != null) {
68             con.close();
69         }
70     }
71 
72     public static void closeStatement(Statement st) throws SQLException {
73         if (st != null) {
74             st.close();
75         }
76     }
77 
78     public static void closeResultSet(ResultSet rs) throws SQLException {
79         if (rs != null) {
80             rs.close();
81         }
82     }
83 
84 }

 


原文链接:https://www.cnblogs.com/voidchar/p/10514397.html
如有疑问请与原作者联系

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:分享JavaScript学习指南

下一篇:Tomcat常用的过滤器