java ee工程中使用c3p0连接池编写的DBUtils

c3p0是一个开源的数据库连接池。是目前spring支持的两种连接之一。

下载地址:http://sourceforge.net/projects/c3p0/

将下载来的jar包和对应数据库的连接驱动一起放在WEB-INF\lib下即可

使用c3p0之前要先进行配置

配置文件为c3p0-config.xml。文件名不能修改,并且 一定要放在  工程\ WebRoot\WEB-INF\classes下

使用前要修改数据库连接url串,帐号,密码,其余的用默认的就行

<?xml version="1.0" encoding="UTF-8"?>
<c3p0-config>
    <default-config>
        <property name="user">xkxt</property>
        <property name="password">xkxt</property>
        <property name="driverClass">oracle.jdbc.driver.OracleDriver</property>
        <property name="jdbcUrl">jdbc:oracle:thin:@114.215.175.28:1521:ORCL</property>
        <!-- 连接池初始化时建立的连接数 默认值是3 -->
        <property name="initialPoolSize">3</property>
        <!-- 连接的最大空闲时间  单位秒 默认是0-代表永远不会断开连接  超过设定时间的空闲连接将会断开 -->
        <property name="maxIdleTime">30</property>
        <!-- 连接池中拥有的最大连接数 默认值为15个 -->
        <property name="maxPoolSize">20</property>
        <!-- 连接池中保持的最小连接数  默认值为3个-->
        <property name="minPoolSize">3</property>
        <!-- 将连接池的连接数保持在minpoolsize 必须小于maxIdleTime设置  默认值为0代表不处理  单位秒 -->
        <property name="maxIdleTimeExcessConnections">15</property>	
    </default-config>
</c3p0-config>


配置好后就可以开始编写,数据库连接工具类(使用单例模式)

DBUtils:

package org.dxlab.xkxt.util;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

import com.mchange.v2.c3p0.ComboPooledDataSource;

/**
 * 数据库连接工具,
 * @author jy
 *
 */
public class DBUtils {

	private static ComboPooledDataSource dataSource;
	private static DBUtils me=new DBUtils();

	private DBUtils() {}

	public static DBUtils getInstance()
	{
		return me;
	}
	
	static{//静态块,读取c3p0默认配置文件
		dataSource = new ComboPooledDataSource();
	}

	/**
	 * 获取数据库连接
	 * @return conn
	 */
	public Connection getConn()
	{
		Connection conn = null;

		try {
			conn = dataSource.getConnection();
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}


		return conn;

	}

	/**
	 * 释放数据库资源
	 * @param conn
	 * @param pstmt
	 * @param rset
	 */
	public void ReleaseRes(Connection conn,PreparedStatement pstmt,ResultSet rset)
	{
		try{
			if(rset!=null) rset.close();
			if(pstmt!=null) pstmt.close();
			if(conn!=null)  conn.close();
		}catch(SQLException e)
		{
			e.printStackTrace();
		}
	}


}



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值