1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.apache.ibatis.testcontainers;
17
18 import javax.sql.DataSource;
19
20 import org.apache.ibatis.datasource.pooled.PooledDataSource;
21 import org.apache.ibatis.datasource.unpooled.UnpooledDataSource;
22 import org.testcontainers.containers.MySQLContainer;
23
24 public class MysqlContainer {
25
26 private static final String DB_NAME = "mybatis_test";
27 private static final String USERNAME = "u";
28 private static final String PASSWORD = "p";
29 private static final String DRIVER = "com.mysql.cj.jdbc.Driver";
30
31 private static final MySQLContainer<?> INSTANCE = initContainer();
32
33 private static MySQLContainer<?> initContainer() {
34 @SuppressWarnings("resource")
35 MySQLContainer<?> container = new MySQLContainer<>().withDatabaseName(DB_NAME).withUsername(USERNAME)
36 .withPassword(PASSWORD).withUrlParam("useSSL", "false");
37 container.start();
38 return container;
39 }
40
41 public static DataSource getUnpooledDataSource() {
42 return new UnpooledDataSource(MysqlContainer.DRIVER, INSTANCE.getJdbcUrl(), MysqlContainer.USERNAME,
43 MysqlContainer.PASSWORD);
44 }
45
46 public static PooledDataSource getPooledDataSource() {
47 return new PooledDataSource(MysqlContainer.DRIVER, INSTANCE.getJdbcUrl(), MysqlContainer.USERNAME,
48 MysqlContainer.PASSWORD);
49 }
50
51 private MysqlContainer() {
52 }
53 }