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();


    }
posted @ 2022-03-19 21:12  长情c  阅读(60)  评论(0)    收藏  举报