论坛首页 Java企业应用论坛

强烈推荐一个简单而实用的数据库连接池工程

浏览 3164 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2013-07-15  

接触过很多的数据库连接池,有d3p0,druid,都比较nb,不过需要引入一些大的jar包,而且有一些相关的jar包也经常忘记。于是,对于简单的应用,可以自己写一个连接池看看,而且对于数据库连接池的基本原理可以清楚一点。

 

本示例代码就是基于这样的想法自己写的,是几年前就写了,而且关键核心代码还是来自网上的,不过加上了一个新的模板方法,和之前的一个帖子关于jedis的操作的模板类差不多,也是对模板模式的另一个应用。

 

初学者可以了解到:

1.数据库连接池原理

2.模板模式

3.不需要引用第三方jar包,除了jdbc的包,就可以使用的一个连接池.

 

使用方法举例:

package brightmoon.test;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

import brightmoon.jdbc.DataHandler;
import brightmoon.jdbc.MyDbUtil;

public class DbTemplateTest {
	public static void main(String[] args) throws SQLException {
		MyDbUtil db = new MyDbUtil();

		int test = (int) (Double.parseDouble("" + Math.random() * 1000000));
		//添加数据
		db.updateRecords("insert into hh values(" + test + ","
				+ System.currentTimeMillis() + "," + System.currentTimeMillis()
				+ ")");

		//更新数据
		db.updateRecords("update hh set something = 44 where id = " + test);

		//查询列表
		List ans = db.queryList("select * from hh", new DataHandler() {
			@Override
			public void processRow(ResultSet rs) throws SQLException {
				Object[] objs = new Object[2];
				objs[0] = rs.getString(1);
				objs[1] = rs.getString(2); 
				addRecord(objs);
			}
		});
		
		System.out.println(ans.size());

		//参数化添加数据
		List arg = new ArrayList();
		arg.add(Integer.parseInt("123"));
		arg.add("2222");
		String sql = " insert into comments values(?,?)";
		db.updateRecords(sql, arg);
	}

	public static String notBlank(Object obj) {
		if (obj == null)
			return "";
		return obj.toString();
	}
}

 DBPoolManager.java核心代码来自网上收藏,出处也找不到了,这个小工程很早就开始使用了,现在才整理出来。

 

仅仅是小玩意,欢迎demo工程使用本程序。高手请绕道。

   发表时间:2013-07-20  
/**
* 返回连接池管理对象的实例
* @return
*/
public static DBPoolManager getInstance() {
if(dbManager==null){
dbManager = new DBPoolManager();
}
//创建了一次就计数累加一次。
clientCount++;
return dbManager;
}

这里得到 连接池管理对象,并不会单例。。。是不是要加上 synchronized 
0 请登录后投票
   发表时间:2013-07-22  
返回连接池管理对象的实例
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics