`
renjie120
  • 浏览: 237915 次
  • 性别: Icon_minigender_1
  • 来自: 上海
博客专栏
D11bba82-ec4a-3d31-a3c0-c51130c62f1c
Java应用集锦
浏览量:22942
社区版块
存档分类
最新评论

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

 
阅读更多

接触过很多的数据库连接池,有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工程使用本程序。高手请绕道。

分享到:
评论

相关推荐

    spring3+hibernate3+proxool+mysql 超级企业J2EE DEMO(jar在下一个文件中,jar太大了)

    本项目采用当前主流的MVC和IOC框架spring 3、优秀的ORM框架hibernate和超级厉害的proxool数据库连接池。这个工程demo,是本人在企业应用中的项目缩影,绝对实用于企业的应用。 适合朋友: 1.一直用单独的servlet和...

    hibernate tools

    **Hibernate Tools** 是一个强大的开发工具,专为简化在Eclipse集成开发环境中使用Hibernate框架而设计。这个插件提供了一系列实用的功能,帮助开发者更高效地处理ORM(对象关系映射)任务,包括实体类的生成、...

    java-高级工程师个人简历模板.docx

    \n\n在技能方面,该工程师熟练运用了Java编程语言,包括但不限于工厂模式、单例模式、对象模式、迭代器、反射、线程池和连接池等设计模式和技术。他还精通数据迁移、数据仓库构建、读写分离策略以及客户行为追踪,这...

    TCP/IP教程TCP/IP基础

    6.6 选择一个域名服务器 52 6.7 名字服务解析过程 52 6.7.1 递归查询 52 6.7.2 叠代查询 52 6.8 高速缓存 52 6.9 反向解析(Pointer)查询 52 6.10 DNS安全 52 6.11 资源记录 53 6.12 小结 54 第7章 WINS 55 7.1 ...

    TCP/IP技术大全

    6.6 选择一个域名服务器 52 6.7 名字服务解析过程 52 6.7.1 递归查询 52 6.7.2 叠代查询 52 6.8 高速缓存 52 6.9 反向解析(Pointer)查询 52 6.10 DNS安全 52 6.11 资源记录 53 6.12 小结 54 第7章 WINS 55 7.1 ...

    TCP/IP详解

    6.6 选择一个域名服务器 52 6.7 名字服务解析过程 52 6.7.1 递归查询 52 6.7.2 叠代查询 52 6.8 高速缓存 52 6.9 反向解析(Pointer)查询 52 6.10 DNS安全 52 6.11 资源记录 53 6.12 小结 54 第7章 WINS 55 7.1 ...

    TCP/IP技术大全(中文PDF非扫描版)

    6.6 选择一个域名服务器 52 6.7 名字服务解析过程 52 6.7.1 递归查询 52 6.7.2 叠代查询 52 6.8 高速缓存 52 6.9 反向解析(Pointer)查询 52 6.10 DNS安全 52 6.11 资源记录 53 6.12 小结 54 第7章 WINS 55 7.1 ...

    TCP-IP技术大全

    6.6 选择一个域名服务器 52 6.7 名字服务解析过程 52 6.7.1 递归查询 52 6.7.2 叠代查询 52 6.8 高速缓存 52 6.9 反向解析(Pointer)查询 52 6.10 DNS安全 52 6.11 资源记录 53 6.12 小结 54 第7章 WINS 55 7.1 ...

    TCPIP协议详解(4-1)

    DNS:名字服务器 48 6.1 域名系统概述 48 6.2 授权局 50 6.3 DNS分布数据库 50 6.4 域和区 50 6.5 Internet顶级域 51 6.6 选择一个域名服务器 52 6.7 名字服务解析过程 52 6.7.1 递归查询 ...

Global site tag (gtag.js) - Google Analytics