From ef65500b08b4daa277c1e3cf2dd384bc4c5a9102 Mon Sep 17 00:00:00 2001 From: trang Date: Sat, 10 Mar 2018 22:15:36 +0800 Subject: [PATCH] mybatis --- .../druid-spring-boot-mybatis-example/pom.xml | 4 ---- .../example/mybatis/DruidMybatisApplication.java | 13 ++++++++++++- .../example/mybatis/config/DynamicDataSource.java | 6 ++---- .../src/main/resources/application.yml | 1 + .../example/mybatis/test/coveralls/BaseTest.java | 6 ++++++ .../test/coveralls/DynamicDataSourceTests.java | 8 ++++---- .../mybatis/test/coveralls/MyBatisTests.java | 9 ++++++--- .../test/coveralls/SingleDataSourceTests.java | 8 ++++---- 8 files changed, 35 insertions(+), 20 deletions(-) diff --git a/druid-spring-boot-example/druid-spring-boot-mybatis-example/pom.xml b/druid-spring-boot-example/druid-spring-boot-mybatis-example/pom.xml index 8a9d4a5..9c33ce1 100644 --- a/druid-spring-boot-example/druid-spring-boot-mybatis-example/pom.xml +++ b/druid-spring-boot-example/druid-spring-boot-mybatis-example/pom.xml @@ -23,10 +23,6 @@ - - org.springframework.boot - spring-boot-properties-migrator - org.springframework.boot spring-boot-starter-aop diff --git a/druid-spring-boot-example/druid-spring-boot-mybatis-example/src/main/java/com/github/trang/druid/example/mybatis/DruidMybatisApplication.java b/druid-spring-boot-example/druid-spring-boot-mybatis-example/src/main/java/com/github/trang/druid/example/mybatis/DruidMybatisApplication.java index bc9a7cc..e64e70a 100644 --- a/druid-spring-boot-example/druid-spring-boot-mybatis-example/src/main/java/com/github/trang/druid/example/mybatis/DruidMybatisApplication.java +++ b/druid-spring-boot-example/druid-spring-boot-mybatis-example/src/main/java/com/github/trang/druid/example/mybatis/DruidMybatisApplication.java @@ -1,6 +1,10 @@ package com.github.trang.druid.example.mybatis; +import com.github.trang.druid.example.mybatis.mapper.CityMapper; +import com.google.gson.Gson; +import lombok.extern.slf4j.Slf4j; import org.mybatis.spring.annotation.MapperScan; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.CommandLineRunner; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @@ -12,6 +16,7 @@ import org.springframework.boot.autoconfigure.SpringBootApplication; */ @SpringBootApplication @MapperScan("com.github.trang.druid.example.mapper") +@Slf4j public class DruidMybatisApplication implements CommandLineRunner { public static void main(String[] args) { @@ -19,9 +24,15 @@ public class DruidMybatisApplication implements CommandLineRunner { SpringApplication.run(DruidMybatisApplication.class, args); } + @Autowired + private CityMapper cityRepository; + @Override public void run(String... args) { - + Gson gson = new Gson(); + cityRepository.findAll().stream() + .map(gson::toJson) + .forEach(log::info); } } \ No newline at end of file diff --git a/druid-spring-boot-example/druid-spring-boot-mybatis-example/src/main/java/com/github/trang/druid/example/mybatis/config/DynamicDataSource.java b/druid-spring-boot-example/druid-spring-boot-mybatis-example/src/main/java/com/github/trang/druid/example/mybatis/config/DynamicDataSource.java index bfa061d..734ec14 100644 --- a/druid-spring-boot-example/druid-spring-boot-mybatis-example/src/main/java/com/github/trang/druid/example/mybatis/config/DynamicDataSource.java +++ b/druid-spring-boot-example/druid-spring-boot-mybatis-example/src/main/java/com/github/trang/druid/example/mybatis/config/DynamicDataSource.java @@ -1,6 +1,7 @@ package com.github.trang.druid.example.mybatis.config; import lombok.Getter; +import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.jdbc.datasource.lookup.AbstractRoutingDataSource; @@ -18,15 +19,12 @@ import java.util.concurrent.atomic.AtomicInteger; */ @Slf4j @Getter +@RequiredArgsConstructor public class DynamicDataSource extends AbstractRoutingDataSource { private final AtomicInteger count = new AtomicInteger(); private final Map targetDataSources; - public DynamicDataSource(Map targetDataSources) { - this.targetDataSources = targetDataSources; - } - /** * 基于轮询算法指定实际的数据源 * diff --git a/druid-spring-boot-example/druid-spring-boot-mybatis-example/src/main/resources/application.yml b/druid-spring-boot-example/druid-spring-boot-mybatis-example/src/main/resources/application.yml index 93dc969..7c34437 100644 --- a/druid-spring-boot-example/druid-spring-boot-mybatis-example/src/main/resources/application.yml +++ b/druid-spring-boot-example/druid-spring-boot-mybatis-example/src/main/resources/application.yml @@ -27,6 +27,7 @@ spring: password: 123456 schema: classpath:import.sql druid: + max-wait: 30000 query-timeout: 10 validation-query: SELECT 1 use-global-data-source-stat: true diff --git a/druid-spring-boot-example/druid-spring-boot-mybatis-example/src/test/java/com/github/trang/druid/example/mybatis/test/coveralls/BaseTest.java b/druid-spring-boot-example/druid-spring-boot-mybatis-example/src/test/java/com/github/trang/druid/example/mybatis/test/coveralls/BaseTest.java index 55edfa6..0897c83 100644 --- a/druid-spring-boot-example/druid-spring-boot-mybatis-example/src/test/java/com/github/trang/druid/example/mybatis/test/coveralls/BaseTest.java +++ b/druid-spring-boot-example/druid-spring-boot-mybatis-example/src/test/java/com/github/trang/druid/example/mybatis/test/coveralls/BaseTest.java @@ -2,7 +2,10 @@ package com.github.trang.druid.example.mybatis.test.coveralls; import com.github.trang.druid.example.mybatis.DruidMybatisApplication; import com.github.trang.druid.example.mybatis.mapper.CityMapper; +import com.google.gson.Gson; import org.junit.runner.RunWith; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.context.junit4.SpringRunner; @@ -16,6 +19,9 @@ import org.springframework.test.context.junit4.SpringRunner; @SpringBootTest(classes = DruidMybatisApplication.class) public abstract class BaseTest { + protected static final Logger log = LoggerFactory.getLogger(BaseTest.class.getSimpleName()); + protected Gson gson = new Gson(); + @Autowired(required = false) protected CityMapper cityMapper; diff --git a/druid-spring-boot-example/druid-spring-boot-mybatis-example/src/test/java/com/github/trang/druid/example/mybatis/test/coveralls/DynamicDataSourceTests.java b/druid-spring-boot-example/druid-spring-boot-mybatis-example/src/test/java/com/github/trang/druid/example/mybatis/test/coveralls/DynamicDataSourceTests.java index 379aead..63be24c 100644 --- a/druid-spring-boot-example/druid-spring-boot-mybatis-example/src/test/java/com/github/trang/druid/example/mybatis/test/coveralls/DynamicDataSourceTests.java +++ b/druid-spring-boot-example/druid-spring-boot-mybatis-example/src/test/java/com/github/trang/druid/example/mybatis/test/coveralls/DynamicDataSourceTests.java @@ -32,8 +32,8 @@ public class DynamicDataSourceTests extends BaseTest { @Test public void testMasterDataSource() { - assertEquals(1, masterDataSource.getInitialSize()); - assertEquals(1, masterDataSource.getMinIdle()); + assertEquals(0, masterDataSource.getInitialSize()); + assertEquals(0, masterDataSource.getMinIdle()); assertEquals(50, masterDataSource.getMaxActive()); assertEquals(30000, masterDataSource.getMaxWait()); assertEquals(60000, masterDataSource.getTimeBetweenEvictionRunsMillis()); @@ -49,8 +49,8 @@ public class DynamicDataSourceTests extends BaseTest { @Test public void testSlaveDataSource() { - assertEquals(1, slaveDataSource.getInitialSize()); - assertEquals(1, slaveDataSource.getMinIdle()); + assertEquals(0, slaveDataSource.getInitialSize()); + assertEquals(0, slaveDataSource.getMinIdle()); assertEquals(25, slaveDataSource.getMaxActive()); assertEquals(30000, slaveDataSource.getMaxWait()); assertEquals(60000, slaveDataSource.getTimeBetweenEvictionRunsMillis()); diff --git a/druid-spring-boot-example/druid-spring-boot-mybatis-example/src/test/java/com/github/trang/druid/example/mybatis/test/coveralls/MyBatisTests.java b/druid-spring-boot-example/druid-spring-boot-mybatis-example/src/test/java/com/github/trang/druid/example/mybatis/test/coveralls/MyBatisTests.java index cbfa192..435b404 100644 --- a/druid-spring-boot-example/druid-spring-boot-mybatis-example/src/test/java/com/github/trang/druid/example/mybatis/test/coveralls/MyBatisTests.java +++ b/druid-spring-boot-example/druid-spring-boot-mybatis-example/src/test/java/com/github/trang/druid/example/mybatis/test/coveralls/MyBatisTests.java @@ -5,6 +5,7 @@ import org.junit.Assert; import org.junit.Test; import java.util.List; +import java.util.Optional; /** * MyBatis 测试 @@ -15,14 +16,16 @@ public class MyBatisTests extends BaseTest { @Test public void testOne() { - City city = cityMapper.findById(1L); - System.out.println(city); + Optional.ofNullable(cityMapper.findById(1L)) + .ifPresent(gson::toJson); } @Test public void testAll() { List cities = cityMapper.findAll(); - System.out.println(cities); + cities.stream() + .map(gson::toJson) + .forEach(log::info); Assert.assertEquals(5, cities.size()); } diff --git a/druid-spring-boot-example/druid-spring-boot-mybatis-example/src/test/java/com/github/trang/druid/example/mybatis/test/coveralls/SingleDataSourceTests.java b/druid-spring-boot-example/druid-spring-boot-mybatis-example/src/test/java/com/github/trang/druid/example/mybatis/test/coveralls/SingleDataSourceTests.java index f449733..94bb331 100644 --- a/druid-spring-boot-example/druid-spring-boot-mybatis-example/src/test/java/com/github/trang/druid/example/mybatis/test/coveralls/SingleDataSourceTests.java +++ b/druid-spring-boot-example/druid-spring-boot-mybatis-example/src/test/java/com/github/trang/druid/example/mybatis/test/coveralls/SingleDataSourceTests.java @@ -20,9 +20,9 @@ public class SingleDataSourceTests extends BaseTest { @Test public void testSingleDataSource() { - assertEquals(1, dataSource.getInitialSize()); - assertEquals(1, dataSource.getMinIdle()); - assertEquals(10, dataSource.getMaxActive()); + assertEquals(0, dataSource.getInitialSize()); + assertEquals(0, dataSource.getMinIdle()); + assertEquals(8, dataSource.getMaxActive()); assertEquals(30000, dataSource.getMaxWait()); assertEquals(60000, dataSource.getTimeBetweenEvictionRunsMillis()); assertEquals(1800000, dataSource.getMinEvictableIdleTimeMillis()); @@ -31,7 +31,7 @@ public class SingleDataSourceTests extends BaseTest { assertEquals(true, dataSource.isTestWhileIdle()); assertEquals(false, dataSource.isTestOnBorrow()); assertEquals(false, dataSource.isTestOnReturn()); - assertEquals(20, dataSource.getMaxPoolPreparedStatementPerConnectionSize()); + assertEquals(10, dataSource.getMaxPoolPreparedStatementPerConnectionSize()); assertEquals(true, dataSource.isUseGlobalDataSourceStat()); }