title: JAVA创建DataSource
date: 2020-01-17
author: maxzhao
tags:
- JAVA
- DataSource
categories: - JAVA
- DB
为什么会用到 DataSource
?
在我读 oauth2
源码的时候,Spring
中提供了大量的测试代码,运行测试代码更方便自己理解,但是测试代码中使用的大多都是 Hsqldb
等等,我想连接我的开发库(MySql8
)进行测试。
传统的连接方式配置比较麻烦,这里使用 alibaba
的 druid
来获取 datasource
。
引入依赖
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.16</version>
</dependency>
创建工具类
/**
* 创建 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<String, String> 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.x
与 MySql8
的区别要个别注意一下。
本文地址:JAVA创建DataSource
网友评论