在mybatis中引入C3P0连接池

本文详细介绍了如何使用C3P0配置MyBatis数据库连接池,包括所需jar包、c3p0.properties文件编写、自定义连接池类、mybatis-config.xml配置及常见错误排查。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

首先,要导包:
c3p0-0.9.2.1.jar(c3p0核心包)
mchange-commons-java-0.2.3.4.jar(c3p0数据库连接池的辅助包,没有这个包系统启动的时候会报classnotfoundexception,这是c3p0-0.9.2版本后分离出来的包,0.9.1的时候还是一个包就搞定的)
mysql-connector-java-5.1.7-bin.jar(mysql驱动包)

第二步:编写一个c3p0.properties

c3p0.driverClass=com.mysql.jdbc.Driver 
c3p0.jdbcUrl=jdbc:mysql:///ssm
c3p0.user=root 
c3p0.password=123
c3p0.maxPoolSize=20 
c3p0.minPoolSize=3 
c3p0.maxStatements=30 
c3p0.maxIdleTime=150

第三步:自定义一个连接池类

public class C3P0DataSource extends UnpooledDataSourceFactory {
	
	public C3P0DataSource() {
		this.dataSource = new ComboPooledDataSource();
	}
}

第四步:在mybatis-config.xml(核心配置文件)中配置

<properties resource="c3p0.properties" />//引入外部properties文件
<environments default="development">
		<environment id="development">
			<transactionManager type="JDBC" />
			<dataSource type="com.itheima.pool.C3P0DataSource">
				<property name="driverClass" value="${c3p0.driverClass}"/>
              	<property name="jdbcUrl" value="${c3p0.jdbcUrl}"/>
              	<property name="user" value="${c3p0.user}"/>
              	<property name="password" value="${c3p0.password}"/>
			</dataSource>
		</environment>
	</environments>

第五步:测试

List<User> list = userMapper.findAll();
for (User user : list) {
	System.out.println(user);
}

我在测试的时候出现
Could not load driverClass com.mysql.jdbc.Driver
Access denied for user 'root '@‘localhost’ (using password: YES)
java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
但是我朋友运行起来不报错,我的mysql版本是5+,而他的是8+,但是我把mybatis-config.xml中的DataSource中的properties全部删掉之后,也能正常运行,查了一下,在不写的时候,程序也可以加载到属性文件(c3p0.properties)中的内容。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值