最近看了几个数据库连接池,打算每个连接池做个demo发一下,有需要的朋友可自行阅读
一、配置文件部分
1.配置文件:路径:src下 DBDemo/src/c3p0.properties
名称必须为c3p0.properties
关于c3p0配置文件中每一条的具体含义不再赘述
2.文件内容
c3p0.driverClass=com.mysql.jdbc.Driver
c3p0.jdbcUrl=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf8
c3p0.user=admin
c3p0.password=admin
c3p0.idleConnectionTestPeriod=60
c3p0.initialPoolSize=10
c3p0.maxIdleTime=60
c3p0.maxPoolSize=20
c3p0.maxStatements=100
c3p0.minPoolSize=5
3.配置文件中可能出现的问题
驱动一定要正确:driverClass=com.mysql.jdbc.Driver
地址一定要正确:jdbcUrl=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf8
二、DBC3p0Manager(功能类)
此demo只为测试
如果要实际应用还需要定义连接关闭、自动提交、回滚等方法的
package com.test;
import java.sql.Connection;
import javax.sql.DataSource;
import com.mchange.v2.c3p0.ComboPooledDataSource;
public class DBC3p0Manager {
private static DataSource ds;
// 直接使用、不需要显式的配置
static {
ds = new ComboPooledDataSource();
}
//获取一个db连接
public static Connection getConnection() {
try {
Connection conn = null;
if (conn == null) { // 代表线程上没有绑定连接
conn = ds.getConnection();
}
return conn;
} catch (Exception e) {
}
return null;
}
}
三、TestDBQuery(测试函数)
package com.test;
import java.sql.ResultSet;
public class TestDBQuery {
public static void main(String[] args){
String sql_tmp = " select id from app_file limit 0,1";
try{
//分开定义合适 ,偷懒了
ResultSet rs = DBC3p0Manager.getConnection()
.prepareStatement(sql_tmp)
.executeQuery();
while(rs.next()){
//String field_tmp = rs.getString("id") ;
String field_tmp = rs.getString(1) ; // 此方法比较高效
System.out.println("=="+field_tmp);
}
}catch(Exception e){
}
}
四、最后付上所需jar 和demo图片
jar包地址:
http://download.youkuaiyun.com/detail/dark_angle_mm/8807073
demo图片:
}