c3p0简单使用

1.在项目中导入c3p0.jar包

2.在src目录下创建c3p0-config.xml文件

3.在xml文件中增加下列节点:

<?xml version="1.0" encoding="UTF-8"?>
<c3p0-config>

    <!-- 如果在new的时候不指定使用哪个配置则使用下面缺省的配置  -->
  <default-config>
    <property name="driverClass">com.mysql.jdbc.Driver</property>
      <property name="jdbcUrl">jdbc_url</property>
      <property name="user">用户名</property>
      <property name="password">密码</property>
    <!-- 池里面的链接数量不够的时候可以再找数据库要多少个  -->
    <property name="acquireIncrement">5</property>
    <property name="initialPoolSize">10</property>
    <property name="minPoolSize">5</property>
    <property name="maxPoolSize">20</property>
  </default-config>

  <!-- This app is massive! -->
  <named-config name="mysql"> 
<pre name="code" class="html">      <property name="driverClass">jdbc驱动</property>
      <property name="jdbcUrl">jdbc_url</property>
      <property name="user">用户名</property>
      <property name="password">密码</property>
<property name="acquireIncrement">5</property><!--池里面的链接数量不够的时候可以再找数据库要多少个 --> <property name="initialPoolSize">10</property> <property name="minPoolSize">5</property> <property name="maxPoolSize">20</property> <!-- intergalactoApp adopts a different approach to configuring statement caching --> <!-- <property name="maxStatements">0</property> <property name="maxStatementsPerConnection">5</property> --> </named-config> <named-config name="oracle"> <property name="driverClass">jdbc驱动</property> <property name="jdbcUrl">jdbc_url</property> <property name="user">用户名</property> <property name="password">密码</property> <property name="acquireIncrement">5</property> <property name="initialPoolSize">10</property> <property name="minPoolSize">5</property> <property name="maxPoolSize">20</property> </named-config></c3p0-config>

 4.在项目中新建DBConnector类: 
 

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

import com.mchange.v2.c3p0.ComboPooledDataSource;

public class DBConnector {

	
	//数据库连接
	private static ComboPooledDataSource dataSource = null;
	
	//静态块加载
	static{
		try
		{
			dataSource = new ComboPooledDataSource("mysql");
		}catch(Exception e)
		{
			e.printStackTrace();
		}
	}
	
	
	//获取数据库连接
	public static Connection getConnection(){
		Connection conn = null;
		try {
			conn = dataSource.getConnection();
			System.out.println("获取数据库连接:"+conn);
		} catch (SQLException e) {
			e.printStackTrace();
		}
		return conn;
	}
	
	//关闭数据库连接
	public static void release(Connection conn,PreparedStatement pstmt,ResultSet rs)
	{
		try{
			if(conn != null)
			{
				conn.close();
				conn = null;
			}
			if(pstmt != null)
			{
				pstmt.close();
				pstmt = null;
			}
			if(rs != null)
			{
				rs.close();
				rs = null;
			}
		}catch(Exception e)
		{
			e.printStackTrace();
		}
	}

}
5.在需要获取数据库连接的时候,使用 conn = DBConnector.getConnection() 来从c3p0管理的数据库连接池中获取一个数据库连接。

6.在使用完数据库连接的时候,需要释放连接,调用DBConnector.release(conn, pstmt, rs);即可


猜你喜欢

转载自blog.csdn.net/Magic_Engine/article/details/52159380
今日推荐