1 import com.mchange.v2.c3p0.ComboPooledDataSource;
2 import javax.sql.DataSource;
3 import java.sql.*
;
4
5 public class C3P0Utils {
6 //创建C3P0数据源(连接池)
7 private static DataSource dataSource =
new ComboPooledDataSource();
8
9 /**
10 * 从dataSource(连接池) 获得连接对象
11 */
12 public static Connection getConnection()
throws Exception {
13 Connection connection =
dataSource.getConnection();
14 return connection;
15 }
16
17 /**
18 * 获得连接池
19 *
20 */
21 public static DataSource getDataSource(){
22 return dataSource;
23 }
24
25 /**
26 * 增删改都需要获取连接,关闭连接,只是SQL语句不同
27 * 我们可以使用元数据来自动给
28 * SQL设置参数,合并成一个方法。
29 *
30 * String sql:sql语句
31 * Object[] params:参数数组
32 */
33 public static int update(String sql,Object[] params){
34 try {
35 Connection conn =
getConnection();
36 PreparedStatement ps =
conn.prepareStatement(sql);
37 //获取到参数个数
38 ParameterMetaData metaData =
ps.getParameterMetaData();
39 int count = metaData.getParameterCount();
//参数的个数
40
41 for (
int x = 0; x < count; x++
) {
42 //将参数赋值给对应的 ? 号
43 ps.setObject(x + 1
,params[x]);
44 }
45 return ps.executeUpdate();
46
47 }
catch (Exception e) {
48 e.printStackTrace();
49 }
50 return -1
;
51 }
52
53
54 /**
55 * 释放资源
56 * resultSet
57 * statement
58 * connection
59 */
60 public static void release(ResultSet resultSet, Statement statement, Connection connection) {
61 if (resultSet !=
null) {
62 try {
63 resultSet.close();
64 }
catch (SQLException e) {
65 e.printStackTrace();
66 }
67 }
68 if (statement !=
null) {
69 try {
70 resultSet.close();
71 }
catch (SQLException e) {
72 e.printStackTrace();
73 }
74 }
75 if (connection!=
null){
76 try {
77 connection.close();
//看Connection来自哪里, 如果Connection是从连接池里面获得的, close()方法其实是归还; 如果Connection是创建的, 就是销毁
78 }
catch (SQLException e) {
79 e.printStackTrace();
80 }
81 }
83 }
85 }
86
87
88
89 C3P0配置文件(c3p0-
config.xm)
90
91 <c3p0-config>
92 <
default-config>
93 <property name="driverClass">com.mysql.jdbc.Driver</property>
94 <property name="jdbcUrl">jdbc:mysql:
//localhost:3306/XXX(数据库名称)</property>
95 <property name="user">用户名</property>
96 <property name="password">密码</property>
97 <property name="initialPoolSize">5</property>
98 </
default-config>
99 </c3p0-config>
转载于:https://www.cnblogs.com/TanBeauty/p/10987254.html
相关资源:JDBC的工具类(c3p0连接池,DBUtils)