maven使用c3p0——详细(很详细)

在pom.xml中添加依赖

	<dependency>
      <groupId>log4j</groupId>
      <artifactId>log4j</artifactId>
      <version>1.2.17</version>
    </dependency>
    <dependency>
      <groupId>commons-dbutils</groupId>
      <artifactId>commons-dbutils</artifactId>
      <version>1.6</version>
    </dependency>

    <dependency>
      <groupId>com.mchange</groupId>
      <artifactId>c3p0</artifactId>
      <version>0.9.5.2</version>
    </dependency>
    <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <version>8.0.22</version>
    </dependency>
    

在resources下创建c3p0-config.xml

如下图所示
在resources下创建c3p0-config.xml文件内容

<?xml version="1.0" encoding="UTF-8"?>
<c3p0-config>
   <!--默认配置。详细配置可查阅在线文档:https://tool.oschina.net/apidocs/apidoc?api=c3p0 -->
    <default-config>  
        <property name="initialPoolSize">10</property>  
        <property name="maxIdleTime">30</property>  
        <property name="maxPoolSize">100</property>  
        <property name="minPoolSize">10</property>  
        <property name="maxStatements">200</property>  
    </default-config>  
  
   <!--配置连接池mysql-->
    <named-config name="mysql">  
        <property name="driverClass">com.mysql.cj.jdbc.Driver</property>  
        <property name="jdbcUrl">jdbc:mysql://localhost:3306/你的数据库名字?serverTimezone=GMT%2b8&amp;useUnicode=true&amp;characterEncoding=utf8</property>  
        <property name="user">你的用户名</property>  
        <property name="password">你的密码</property>  
        <property name="initialPoolSize">10</property>  
        <property name="maxIdleTime">30</property>  
        <property name="maxPoolSize">100</property>  
        <property name="minPoolSize">10</property>  
        <property name="maxStatements">200</property>  
    </named-config>  
    
</c3p0-config>

**

注意!!!修改成你的用户名、密码还有数据库名(其他详细配置请参考官网)

**

创建C3p0Utils.java

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

import org.apache.log4j.Logger;

import com.mchange.v2.c3p0.ComboPooledDataSource;


public class C3p0Utils {
	static Logger logger = Logger.getLogger(C3p0Utils.class.getName());

	//通过标识名来创建相应连接池
	static ComboPooledDataSource dataSource = new ComboPooledDataSource("mysql");

	/**
	 * //从连接池中取用一个连接
	 * @return
	 */
	public static Connection getConnection() {
		try {
			return dataSource.getConnection();
		} catch (Exception e) {
			logger.error("Exception in C3p0Utils!", e);

		}
		return null;
	}

	/**
	 * 释放连接回连接池
	 */

	public static void closeAll(Connection conn, PreparedStatement pst, ResultSet rs) {
		if (rs != null) {
			try {
				rs.close();
			} catch (SQLException e) {
				logger.error("Exception in C3p0Utils!", e);

			}
		}
		if (pst != null) {
			try {
				pst.close();
			} catch (SQLException e) {
				logger.error("Exception in C3p0Utils!", e);

			}
		}

		if (conn != null) {
			try {
				conn.close();
			} catch (SQLException e) {
				logger.error("Exception in C3p0Utils!", e);

			}
		}
	}
}

现在就可以用了
也可以创建 测试用例测试
首先先检查pom.xml是否有单元测试依赖,没有则加入下面代码

	<dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.11</version>
      <scope>test</scope>
    </dependency>

注意标签是要放在中的
注意标签是要放在中的

然后创建测试类

package util;

import org.junit.Test;
import yashu.ltd.util.C3p0Utils;

/**
 * @athor 牙叔
 * 2021/3/8
 */
public class test {
    @Test
    public void test01(){
        System.out.println(C3p0Utils.getConnection());
    }

}

查看控制台是否有输出你的连接
没连接上如下图所示:
没连接上连接上的话null的位置会有一段很长的字符,具体不一样


版权声明:本文为qq_45738151原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。