创建C3P0数据源
2015-07-07 16:14
281 查看
[Author]: kwu
创建C3P0数据源,实际开发中直接用JDBC连接数据库是非常少的,一般使用数据源的形式,C3P0是开源的数据源,实际项目用得很多:
1、增加maven的支持
2、配置C3P0,默认配置文件c3p0-config.xml:
3、引用数据源
引用时直接调用静态方法即可。
创建C3P0数据源,实际开发中直接用JDBC连接数据库是非常少的,一般使用数据源的形式,C3P0是开源的数据源,实际项目用得很多:
1、增加maven的支持
<dependency> <groupId>c3p0</groupId> <artifactId>c3p0</artifactId> <version>0.9.1.2</version> </dependency>
2、配置C3P0,默认配置文件c3p0-config.xml:
<?xml version="1.0" encoding="UTF-8"?> <c3p0-config> <named-config name="c3p0"> <property name="user">root</property> <property name="jdbcUrl">jdbc:mysql://localhost:3306/charts</property> <property name="driverClass">com.mysql.jdbc.Driver</property> <property name="password">root</property> <property name="acquireIncrement">5</property> <property name="initialPoolSize">5</property> <property name="minPoolSize">5</property> <property name="maxPoolSize">10</property> <property name="maxStatements">25</property> <property name="maxStatementsPerConnection">5</property> </named-config> </c3p0-config>
3、引用数据源
package com.hexun.utils; import java.sql.Connection; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import javax.sql.DataSource; import com.mchange.v2.c3p0.ComboPooledDataSource; /** * JDBC 的工具类 * * 其中包含: 获取数据库连接, 关闭数据库资源等方法. */ public class JDBCTools { //处理数据库事务的 //提交事务 public static void commit(Connection connection){ if(connection != null){ try { connection.commit(); } catch (SQLException e) { e.printStackTrace(); } } } //回滚事务 public static void rollback(Connection connection){ if(connection != null){ try { connection.rollback(); } catch (SQLException e) { e.printStackTrace(); } } } //开始事务 public static void beginTx(Connection connection){ if(connection != null){ try { connection.setAutoCommit(false); } catch (SQLException e) { e.printStackTrace(); } } } private static DataSource dataSource = null; //数据库连接池应只被初始化一次. static{ dataSource = new ComboPooledDataSource("c3p0"); } public static Connection getConnection() throws Exception { return dataSource.getConnection(); } public static void releaseDB(ResultSet resultSet, Statement statement, Connection connection) { if (resultSet != null) { try { resultSet.close(); } catch (SQLException e) { e.printStackTrace(); } } if (statement != null) { try { statement.close(); } catch (SQLException e) { e.printStackTrace(); } } if (connection != null) { try { //数据库连接池的 Connection 对象进行 close 时 //并不是真的进行关闭, 而是把该数据库连接会归还到数据库连接池中. connection.close(); } catch (SQLException e) { e.printStackTrace(); } } } }
引用时直接调用静态方法即可。
相关文章推荐
- ubuntu中安装samba
- 应付分配集 Distribution Sets
- DataTable填补了实体类返回泛型集合
- 安卓开发7-网络通信-如何使用webservice
- ubuntu中安装samba 分类: linux 学习笔记 ubuntu 2015-07-07 16:14 46人阅读 评论(0) 收藏
- DataSnap 连接池
- HttpClient_用Apache HttpClient实现URL重定向
- Apache Thrift 在 Ubuntu 的简单使用
- 关于Storm的几点困惑释疑
- Laravel 4 系列入门教程(一)【最适合中国人的Laravel教程】
- MongoDB中对象反序列化的一个小问题
- Linux:install command
- 原生JS实现淡入淡出效果(fadeIn/fadeOut/fadeTo)
- 皕杰报表斜线单元格或图表里的中文显示为小方块
- SqlServer Update更新语句因where条件不正确 造成更新全表的情况
- C++通过gsoap做WebService接口 供C++及java客户端调用
- CSP:使用CryptoAPI解析X509证书基本项
- C++编译器对类中成员函数的处理(引用this指针)
- 各移动设备尺寸、分辨率
- YII开发笔记