JAVA创建DataSource


title: JAVA创建DataSource
date: 2020-01-17
author: maxzhao
tags:

  • JAVA
  • DataSource
    categories:
  • JAVA
  • DB

为什么会用到 DataSource

在我读 oauth2 源码的时候,Spring 中提供了大量的测试代码,运行测试代码更方便自己理解,但是测试代码中使用的大多都是 Hsqldb等等,我想连接我的开发库(MySql8)进行测试。

传统的连接方式配置比较麻烦,这里使用 alibabadruid 来获取 datasource

引入依赖


    com.alibaba
    druid
    1.1.16

创建工具类

/**
 * 创建 DataSource 连接
 * 测试使用
 *
 * @author maxzhao
 * @date 2020-01-17 15:36
 */
public class BootDataSource {
    private static final String url = "jdbc:mysql://127.0.0.1:3306/oauth2_boot?charset=utf8mb4&serverTimezone=UTC&useUnicode=true&useSSL=false";
    private static final String username = "maxzhao";
    private static final String password = "maxzhao";
    private static final String drive = "com.mysql.cj.jdbc.Driver";

    public static DataSource createDataSource() throws Exception {
        Map map = new HashMap<>();
        map.put(DruidDataSourceFactory.PROP_DRIVERCLASSNAME, drive);
        map.put(DruidDataSourceFactory.PROP_URL, url);
        map.put(DruidDataSourceFactory.PROP_USERNAME, username);
        map.put(DruidDataSourceFactory.PROP_PASSWORD, password);
        return DruidDataSourceFactory.createDataSource(map);
    }
}

引用工具类

这是在 JdbcClientDetailsServiceTests 中的一个初始化方法。

// 原来的
//    private EmbeddedDatabase db;
// 新的
private DataSource db;    
@Before
public void setUp() throws Exception {
    // creates a HSQL in-memory db populated from default scripts
    // classpath:schema.sql and classpath:data.sql
    // db = new EmbeddedDatabaseBuilder().addDefaultScripts().build();
   db = BootDataSource.createDataSource();
   jdbcTemplate = new JdbcTemplate(db);
   service = new JdbcClientDetailsService(db);
}

到这里就结束了,配置很简单。

我这里使用的是 MySql8的配置。

MySql5.xMySql8 的区别要个别注意一下。

本文地址:JAVA创建DataSource

你可能感兴趣的:(JAVA创建DataSource)