Spring-简单三步配置第三方连接池-C3P0/Druid/SpringDB
问题引出
在进行数据库的增删改查操作的时候,我们都会用到第三方连接池,当设计到事务的时候,我们要获取单个连接,下面我们简单配置一下第三方连接池到Spring中。
简单三步配置开源连接池到Sprting中
第一步:导入Maven坐标依赖
<dependencies>
<!--MySql驱动-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.47</version>
</dependency>
<!--c3p0连接池-->
<dependency>
<groupId>c3p0</groupId>
<artifactId>c3p0</artifactId>
<version>0.9.1.2</version>
</dependency>
<!--druid连接池-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.19</version>
</dependency>
<!--Spring的jdbc支持-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>5.0.2.RELEASE</version>
</dependency>
<!--Spring-context-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.0.2.RELEASE</version>
</dependency>
<!--Spring整合Junit-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>5.0.2.RELEASE</version>
</dependency>
<!--单元测试Junit-->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
</dependency>
</dependencies>
第二步:在spring核心配置文件中配置连接信息
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd">
<!-- 引入属性配置文件-->
<context:property-placeholder location="classpath:jdbc.properties"/>
<!--c3p0的连接池-->
<bean id="c3p0Ds" class="com.mchange.v2.c3p0.ComboPooledDataSource">
<property name="driverClass" value="${jdbc.driver}"/>
<property name="jdbcUrl" value="${jdbc.url}"/>
<property name="user" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
</bean>
<!--druid连接池-->
<bean id="druidDs" class="com.alibaba.druid.pool.DruidDataSource">
<property name="driverClassName" value="${jdbc.driver}"/>
<property name="url" value="${jdbc.url}"/>
<property name="username" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
</bean>
<!--Spring内置的数据源(没有实现连接池技术)-->
<bean id="springDs" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="${jdbc.driver}"/>
<property name="url" value="${jdbc.url}"/>
<property name="username" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
</bean>
</beans>
属性配置文件示例
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/DBName?characterEncoding=utf-8
jdbc.username=root
jdbc.password=root
三步:测试查看结果
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.SQLException;
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = "classpath:springDataSource.xml")
public class DataSourcesTest {
@Autowired
private DataSource c3p0Ds;
@Autowired
private DataSource druidDs;
@Autowired
private DataSource springDs;
@Test
public void c3p0Test() throws SQLException {
Connection connection = c3p0Ds.getConnection();
System.out.println("c3p0->"+connection);
connection.close();
}
@Test
public void testDruid() throws SQLException {
Connection connection = druidDs.getConnection();
System.out.println("druid->"+connection);
connection.close();
}
@Test
public void testSpring() throws SQLException {
Connection connection = springDs.getConnection();
System.out.println("spring->"+connection);
connection.close();
}
}
测试结果:获得连接成功:
还没有评论,来说两句吧...