c3p0和Druid数据源
①普通加载方式(1、2)
1、c3p0:
1、在resources目录下编写applicationContext.xml文件
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
<!-- 注入参数-->
<property name="driverClass" value="com.mysql.jdbc.Driver"></property><!--name是上面class ComboPooledDataSource包的set方法 Druid和c3p0对应的不一样 -->
<property name="jdbcUrl" value="jdbc:mysql://47.100.248.249:3306/zxDB"></property>
<property name="user" value="zou_web"></property>
<property name="password" value="zou_123456"></property>
</bean>
2、编写一个DataSourcetest.java
@Test //测试手动创建 c3p0 数据源
public void test1() throws Exception {
ComboPooledDataSource comboPooledDataSource = new ComboPooledDataSource();
comboPooledDataSource.setDriverClass("com.mysql.jdbc.Driver");
comboPooledDataSource.setJdbcUrl("jdbc:mysql://47.100.248.249:3306/zxDB");
comboPooledDataSource.setUser("zou_web");
comboPooledDataSource.setPassword("zou_123456");
Connection connection = comboPooledDataSource.getConnection();
System.out.println(connection);
connection.close();
}
2、Druid
applicationcontext.xml文件
<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver"></property>
<property name="Url" value="jdbc:mysql://47.100.248.249:3306/zxDB"></property>
<property name="username" value="zou_web"></property>
<property name="password" value="zou_123456"></property>
</bean>
@Test //测试手动创建 druid 数据源
public void test2() throws Exception {
DruidDataSource druidDataSource = new DruidDataSource();
druidDataSource.setDriverClassName("com.mysql.jdbc.Driver");
druidDataSource.setUrl("jdbc:mysql://47.100.248.249:3306/zxDB");
druidDataSource.setUsername("zou_web");
druidDataSource.setPassword("zou_123456");
Connection connection = druidDataSource.getConnection();
System.out.println(connection);
connection.close();
}
②//测试手动创建 c3p0 数据源(加载配置文件信息jdbc.properties) @Test //测试手动创建 c3p0 数据源(加载配置文件信息jdbc.properties)
public void test3() throws Exception {
// 用ResourceBundle方法加载配置文件 自带后缀properties ResourceBundle rb = ResourceBundle.getBundle("jdbc"); String driver = rb.getString("jdbc.driver"); String url = rb.getString("jdbc.url"); String username = rb.getString("jdbc.username"); String password = rb.getString("jdbc.mysql.password"); //创建数据源对象 设置连接参数
ComboPooledDataSource comboPooledDataSource = new ComboPooledDataSource();
comboPooledDataSource.setDriverClass(driver);
comboPooledDataSource.setJdbcUrl(url);
comboPooledDataSource.setUser(username);
comboPooledDataSource.setPassword(password);
Connection connection = comboPooledDataSource.getConnection();
System.out.println(connection);
connection.close();
}
@Test //测试手动创建 druid 数据源 加载配置文件
public void test4() throws Exception {
// 用ResourceBundle方法加载配置文件 自带后缀properties
ResourceBundle rb = ResourceBundle.getBundle("jdbc");
String driver = rb.getString("jdbc.driver");
String url = rb.getString("jdbc.url");
String username = rb.getString("jdbc.username");
String password = rb.getString("jdbc.mysql.password");
//创建数据源对象 设置连接参数
DruidDataSource druidDataSource = new DruidDataSource();
druidDataSource.setDriverClassName(driver);
druidDataSource.setUrl(url);
druidDataSource.setUsername(username);
druidDataSource.setPassword(password);
Connection connection = druidDataSource.getConnection();
System.out.println(connection);
connection.close();
}
2、## 加载外部配置文件properties 需要先引入头部context 先
<context:property-placeholder location="classpath*:jdbc.properties"/>
然后加入context的引入
xmlns:context="http://www.springframework.org/schema/context"
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
- 如果是使用c3p0:
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
<!-- 注入参数-->
<property name="driverClass" value="${jdbc.driver}"></property>
<property name="jdbcUrl" value="${jdbc.url}"></property>
<property name="user" value="${jdbc.username}"></property>
<property name="password" value="${jdbc.password}"></property>
</bean>
代表的test类
2如果是Druid的话
applicationcontext.xml
<!-- druid-->
<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource">
<property name="driverClassName" value="${jdbc.driver}"></property>
<property name="Url" value="${jdbc.url}"></property>
<property name="username" value="${jdbc.username}"></property>
<property name="password" value="${jdbc.password}"></property>
</bean>
对应的测试类
附applicationcontext.xml 和DataSourcetest.jsva
applicationcontext.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
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
">
<!-- 先配置数据源-->
<!-- spring配置加载文件c3p0 com.mchange.v2.c3p0.ComboPooledDataSource- druid com.alibaba.druid.pool.DruidDataSource-->
<!-- <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">-->
<!-- <!– 注入参数–>-->
<!-- <property name="driverClass" value="com.mysql.jdbc.Driver"></property><!–name是上面class ComboPooledDataSource包的set方法 Druid和c3p0对应的不一样 –>-->
<!-- <property name="jdbcUrl" value="jdbc:mysql://47.100.248.249:3306/zxDB"></property>-->
<!-- <property name="user" value="zou_web"></property>-->
<!-- <property name="password" value="zou_123456"></property>-->
<!-- </bean>-->
<!-- druid-->
<!-- <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource">-->
<!-- <property name="driverClassName" value="com.mysql.jdbc.Driver"></property>-->
<!-- <property name="Url" value="jdbc:mysql://47.100.248.249:3306/zxDB"></property>-->
<!-- <property name="username" value="zou_web"></property>-->
<!-- <property name="password" value="zou_123456"></property>-->
<!-- </bean>-->
<!-- 加载外部配置文件properties 需要先引入头部context -->
<context:property-placeholder location="classpath*:jdbc.properties"/>
<!-- <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">-->
<!-- <!– 注入参数–>-->
<!-- <property name="driverClass" value="${jdbc.driver}"></property>-->
<!-- <property name="jdbcUrl" value="${jdbc.url}"></property>-->
<!-- <property name="user" value="${jdbc.username}"></property>-->
<!-- <property name="password" value="${jdbc.password}"></property>-->
<!-- </bean>-->
<!-- druid-->
<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource">
<property name="driverClassName" value="${jdbc.driver}"></property>
<property name="Url" value="${jdbc.url}"></property>
<property name="username" value="${jdbc.username}"></property>
<property name="password" value="${jdbc.password}"></property>
</bean>
</beans>
DataSourceTest
package com.blog.test;
import com.alibaba.druid.pool.DruidDataSource;
import com.mchange.v2.c3p0.ComboPooledDataSource;
import org.junit.jupiter.api.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import javax.sql.DataSource;
import java.sql.Connection;
import java.util.ResourceBundle;
public class DataSourceTest {
@Test
//测试手动创建 c3p0 数据源
public void test1() throws Exception {
ComboPooledDataSource comboPooledDataSource = new ComboPooledDataSource();
comboPooledDataSource.setDriverClass("com.mysql.jdbc.Driver");
comboPooledDataSource.setJdbcUrl("jdbc:mysql://47.100.248.249:3306/zxDB");
comboPooledDataSource.setUser("zou_web");
comboPooledDataSource.setPassword("zou_123456");
Connection connection = comboPooledDataSource.getConnection();
System.out.println(connection);
connection.close();
}
@Test
//测试手动创建 c3p0 数据源(加载配置文件信息jdbc.properties)
public void test3() throws Exception {
// 用ResourceBundle方法加载配置文件 自带后缀properties
ResourceBundle rb = ResourceBundle.getBundle("jdbc");
String driver = rb.getString("jdbc.driver");
String url = rb.getString("jdbc.url");
String username = rb.getString("jdbc.username");
String password = rb.getString("jdbc.mysql.password");
//创建数据源对象 设置连接参数
ComboPooledDataSource comboPooledDataSource = new ComboPooledDataSource();
comboPooledDataSource.setDriverClass(driver);
comboPooledDataSource.setJdbcUrl(url);
comboPooledDataSource.setUser(username);
comboPooledDataSource.setPassword(password);
Connection connection = comboPooledDataSource.getConnection();
System.out.println(connection);
connection.close();
}
@Test
//测试手动创建 druid 数据源
public void test2() throws Exception {
DruidDataSource druidDataSource = new DruidDataSource();
druidDataSource.setDriverClassName("com.mysql.jdbc.Driver");
druidDataSource.setUrl("jdbc:mysql://47.100.248.249:3306/zxDB");
druidDataSource.setUsername("zou_web");
druidDataSource.setPassword("zou_123456");
Connection connection = druidDataSource.getConnection();
System.out.println(connection);
connection.close();
}
@Test
//测试手动创建 druid 数据源 加载配置文件
public void test4() throws Exception {
// 用ResourceBundle方法加载配置文件 自带后缀properties
ResourceBundle rb = ResourceBundle.getBundle("jdbc");
String driver = rb.getString("jdbc.driver");
String url = rb.getString("jdbc.url");
String username = rb.getString("jdbc.username");
String password = rb.getString("jdbc.mysql.password");
//创建数据源对象 设置连接参数
DruidDataSource druidDataSource = new DruidDataSource();
druidDataSource.setDriverClassName(driver);
druidDataSource.setUrl(url);
druidDataSource.setUsername(username);
druidDataSource.setPassword(password);
Connection connection = druidDataSource.getConnection();
System.out.println(connection);
connection.close();
}
@Test
//测试配置容器Spring 产生数据源 c3p0对象
public void test5() throws Exception {
ApplicationContext app = new ClassPathXmlApplicationContext("applicationContext.xml");
DataSource dataSource = app.getBean(DataSource.class);
Connection connection = dataSource.getConnection();
System.out.println(connection+"=========");
connection.close();
}
@Test
//测试配置容器Spring 产生数据源 druid对象
public void test6() throws Exception {
ApplicationContext app = new ClassPathXmlApplicationContext("applicationContext.xml");
DataSource dataSource = app.getBean(DataSource.class);
Connection connection = dataSource.getConnection();
System.out.println(connection+"===druid");
connection.close();
}
}