通过JDBC利用C3P0数据库连接池连接数据库

JDBC之C3P0数据库连接池

1 首先在src中创建c3p0-config.xml 配置文件,文件中内容如下(首先下载C3P0.jar工具包 并放入项目环境变量中)





     
  com.mysql.jdbc.Driver 
  jdbc:mysql:localhost:3306/jdbc_01
  root   
  root 
  
  	
    5
    
    10
    
    5
    
    100
    
    2 
    
    5
  

2 创建一个工具类用于利用C3P0数据库连接池获得数据库连接 工具类如下

package cn.qhy.jdbc;

import java.io.IOException;
import java.lang.reflect.Field;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.HashMap;
import java.util.Map;
import java.util.Map.Entry;

import javax.sql.DataSource;

import com.mchange.v2.c3p0.ComboPooledDataSource;

public class MyDBUtils {
	private static DataSource dataSource;
	static {// 静态代码块,只执行一次
		dataSource = new ComboPooledDataSource("MySQL");
	}

	/**
	 * 
	 * @return
	 * @throws SQLException
	 */
	public static Connection getConnection() throws SQLException {
		return dataSource.getConnection();
	}

	/**
	 * 通用的用来关闭数据有关的所有的资源的操作
	 */
	public static void close(Connection conn, Statement sta, ResultSet re) {
		if (re != null)
			try {
				re.close();
			} catch (SQLException e) {
				e.printStackTrace();
			}
		if (sta != null)
			try {
				sta.close();
			} catch (SQLException e) {
				e.printStackTrace();
			}
		if (conn != null)
			try {
				conn.close();
			} catch (SQLException e) {
				e.printStackTrace();
			}
	}
}

3 创建测试类,测试C3P0是否连接数据库(利用JUnit单元测试)

package cn.qhy.test;

import java.beans.PropertyVetoException;
import java.sql.Connection;
import java.sql.SQLException;

import org.junit.jupiter.api.Test;

import com.mchange.v2.c3p0.ComboPooledDataSource;

import cn.qhy.jdbc.MyDBUtils;

public class C3P0Test {
	/**
	 * @throws SQLException
	 * 
	 */
	@Test
	public void c3p0xmlTest() throws SQLException {
		Connection conn = MyDBUtils.getConnection();
		System.out.println(conn);
		conn.close();
	}
}

结果如下
通过JDBC利用C3P0数据库连接池连接数据库_第1张图片

你可能感兴趣的:(编程语言,JAVA,JDBC,MySQL,C3P0数据库连接池)