Spring之配置数据源(1)
- 首先我们看一下数据源的作用和数据源的开发步骤
第一步就是引入maven的坐标了
- 分别是:c3p0、junit、mysql、druid
第二步在maven项目的test里面新建一个DataSource类
用来测试连接池的
- 首先获取数据库连接池
ComboPooledDataSource dataSource = new ComboPooledDataSource(); - 然后是设置数据库的初始信息
dataSource.setDriverClass("com.mysql.cj.jdbc.Driver");
dataSource.setJdbcUrl("jdbc:mysql://localhost:3306/study");
dataSource.setUser("root");
dataSource.setPassword("");
- 接下来就是获取连接,输出连接信息,关闭连接
Connection connection = dataSource.getConnection();
System.out.println(connection);
connection.close();
完整代码如下
package com.test.itheima;
import com.mchange.v2.c3p0.ComboPooledDataSource;
import org.junit.Test;
import javax.sql.DataSource;
import java.beans.PropertyVetoException;
import java.sql.Connection;
import java.sql.SQLException;
public class DataSourceTest {
@Test
public void test() throws PropertyVetoException, SQLException {
ComboPooledDataSource dataSource = new ComboPooledDataSource();
dataSource.setDriverClass("com.mysql.cj.jdbc.Driver");
dataSource.setJdbcUrl("jdbc:mysql://localhost:3306/study");
dataSource.setUser("root");
dataSource.setPassword("");
Connection connection = dataSource.getConnection();
System.out.println(connection);
connection.close();
}
}
下面测试一下druid的连接池
//手动测试druid连接池
@Test
public void test2() throws SQLException {
DruidDataSource dataSource = new DruidDataSource();
dataSource.setDriverClassName("com.mysql.cj.jdbc.Driver");
dataSource.setUrl("jdbc:mysql://localhost:3306/study");
dataSource.setUsername("root");
dataSource.setPassword("");
DruidPooledConnection connection = dataSource.getConnection();
System.out.println(connection);
connection.close();
}
所有的数据库所需要的初始参数每次写一遍很麻烦,而且为了解耦(字节码编码之后我们看不懂,但是,配置文件还是原来的样子)所以,
我们这里用properties配置文件读取数据库的初始参数
- 首先在resources下创建一个jdbc.properties文件
- 然后尝试抽取properties属性来获取连接池的连接
//测试手动测试c3p0(加载property配置文件)
@Test
public void test3() throws PropertyVetoException, SQLException {
//读取配置文件
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.password");
ComboPooledDataSource dataSource =new ComboPooledDataSource();
dataSource.setDriverClass(driver);
dataSource.setJdbcUrl(url);
dataSource.setUser(username);
dataSource.setPassword(password);
Connection connection = dataSource.getConnection();
System.out.println(connection);
connection.close();
}