C3P0组件+DbUtils组件实现一个JdbcUtils工具类

一,准备工作

1)导入相应的驱动及jar包,如下图:

前面几篇博客都有对JDBC连接数据 DbUtils简化数据库操作 C3P0实现连接池进行了介绍.

二,代码环节

1)工具类JdbcUtils.java代码如下:

package com.bighuan.utils;

import javax.sql.DataSource;

import org.apache.commons.dbutils.QueryRunner;

import com.mchange.v2.c3p0.ComboPooledDataSource;

/**
 * 工具类 1,初始化c3p0连接池 2,创建DbUtils核心工具类对象
 * 
 * @author bighuan
 * 
 */
public class JdbcUtils {

	/**
	 * 1,初始化c3p0连接池
	 */
	private static DataSource dataSource;
	static {
		dataSource = new ComboPooledDataSource();
	}

	/**
	 * 创建DbUtils核心工具类对象
	 * 
	 * @return
	 */
	public static QueryRunner getQueryRunner() {
		/**
		 * 创建QueryRunner对象,传入连接池对象(数据源)
		 * 注意:在创建QueryRunner对象时,如果传入了数据源对象,那么在使用QueryRunner对象
		 * 方法的时候,就不需要传入连接连接对象,会自动从数据源中获取连接(不需要关闭,会自动关闭)
		 */
		return new QueryRunner(dataSource);
	}

}

2)c3p0连接池对应的配置文件c3p0-config.xml放在在src目录下:

<c3p0-config>
  <default-config>
    <property name="jdbcUrl">jdbc:mysql://localhost:3306/day15</property> 
    <property name="driverClass">com.mysql.jdbc.Driver</property>
    <property name="user">root</property>
    <property name="password">abc</property>
    <property name="initialPoolSize">3</property>
    <property name="maxPoolSize">6</property>
    <property name="maxIdleTime">2000</property> 

    <!--
    <user-overrides user="swaldman">
      <property name="debugUnreturnedConnectionStackTraces">true</property>
    </user-overrides>
    -->

  </default-config>

<!--
  <named-config name="oracle_config">
    <property name="maxStatements">200</property>
    <property name="jdbcUrl">jdbc:test</property>
    <user-overrides user="poop">
      <property name="maxStatements">300</property>
    </user-overrides>
   </named-config>
-->

</c3p0-config>
到此工具类就准备好了.

三,使用工具类

这个工具类比自己最初的那个JdbcUtils.java工具类方便的多了.当然了,也是使用了一些厉害的组件.使用示例如下:

// 得到DbUtils核心工具类
		QueryRunner qr = JdbcUtils.getQueryRunner();

		String sql = "select * from dept limit ?,?";
		try {
			List<Dept> pageData = qr.query(sql, new BeanListHandler<Dept>(
					Dept.class), index, pageCount);

			pb.setPageData(pageData);
		} catch (Exception e) {
			throw new RuntimeException(e);
		}



  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值