Java自己动手写连接池三
2014-07-22 13:07
330 查看
Java自己动手写连接池三,核心代码;
package com.kama.cn;
import java.sql.Connection;
import java.util.ArrayList;
import java.util.List;
public class ConnectionPool {
//数据库连接
private static ConnectionPool connectionPool=new ConnectionPool();
public List<Connection> poolList = new ArrayList<Connection>();
// 初始连接池大小
public int init_size = 10;
// 最大连接池大小
public int max_size = 30;
private ConnectionPool() {
/**
* 初始数据库连接池
*/
initdb();
}
public void initdb() {
for (int i = 0; i < init_size; i++) {
poolList.add(DBConfigUtil.getConn());
}
}
public Connection getConnection() {
Connection conn = null;
if (poolList.size() <= 0) {
poolList.add(DBConfigUtil.getConn());
}
conn = poolList.get(0);
poolList.remove(conn);
return conn;
}
/**
* 释放当前连接
*
* @param currentConn
*/
public void realseConnection(Connection currentConn) {
if (!poolList.contains(currentConn)) {
poolList.add(currentConn);
}
}
public static ConnectionPool getInstance()
{
if(connectionPool==null)
{
connectionPool=new ConnectionPool();
}
return connectionPool;
}
/**
* 连接池大小
* @return
*/
public int poolSize()
{
return poolList.size();
}
}
package com.kama.cn;
import java.sql.Connection;
import java.util.ArrayList;
import java.util.List;
public class ConnectionPool {
//数据库连接
private static ConnectionPool connectionPool=new ConnectionPool();
public List<Connection> poolList = new ArrayList<Connection>();
// 初始连接池大小
public int init_size = 10;
// 最大连接池大小
public int max_size = 30;
private ConnectionPool() {
/**
* 初始数据库连接池
*/
initdb();
}
public void initdb() {
for (int i = 0; i < init_size; i++) {
poolList.add(DBConfigUtil.getConn());
}
}
public Connection getConnection() {
Connection conn = null;
if (poolList.size() <= 0) {
poolList.add(DBConfigUtil.getConn());
}
conn = poolList.get(0);
poolList.remove(conn);
return conn;
}
/**
* 释放当前连接
*
* @param currentConn
*/
public void realseConnection(Connection currentConn) {
if (!poolList.contains(currentConn)) {
poolList.add(currentConn);
}
}
public static ConnectionPool getInstance()
{
if(connectionPool==null)
{
connectionPool=new ConnectionPool();
}
return connectionPool;
}
/**
* 连接池大小
* @return
*/
public int poolSize()
{
return poolList.size();
}
}
相关文章推荐
- Java自己动手写连接池一
- Java自己动手写连接池二
- Java自己动手写连接池四
- 自己动手写搜索引擎(常搜吧历程四#分词#)(Java、Lucene、hadoop)
- java笔记:自己动手写javaEE框架(四)--Spring事务管理学习
- java笔记:自己动手写javaEE框架(八)--为jqgrid换换皮肤然后加到我的框架里
- Java - 自己动手之在线书店(1)
- 自己动手,写个Web服务器(Java版)——第三篇
- 自己动手写搜索引擎(常搜吧历程三#搜索#)(Java、Lucene、hadoop)
- java笔记:自己动手写javaEE框架(六)--引入struts2框架
- java笔记:自己动手写javaEE框架(七)--使用JSON和Ajax技术
- 自己动手编译、运行Java程序
- 自己动手写java上传组件
- 自己动手编译、运行Java程序
- 自己动手写搜索引擎(常搜吧历程一#认识Lucene#)(Java、Lucene、hadoop)
- 自己动手验证java和C++在动态性上的区别 求大侠斧正
- 自己动手,写个Web服务器(Java版)——第二篇、Web服务器0.2
- 自己动手用JAVA编写JSON工具类
- Java - 自己动手之在线书店(2)
- Java程序员从笨鸟到菜鸟之(六十八)细谈Spring(二)自己动手模拟spring