Sfoglia il codice sorgente

add test case for tomcat jdbc datasource, test performance inteceptor print sql

yuxiaobin 7 anni fa
parent
commit
53af5183d9

+ 2 - 1
build.gradle

@@ -34,7 +34,8 @@ ext {
 			"spring-jdbc":"org.springframework:spring-jdbc:${springVersion}",
 			"spring-tx":"org.springframework:spring-tx:${springVersion}",
 			"druid":"com.alibaba:druid:1.0.29",
-			"fastjson":"com.alibaba:fastjson:1.2.37"
+			"fastjson":"com.alibaba:fastjson:1.2.37",
+			"tomcatjdbc":"org.apache.tomcat:tomcat-jdbc:9.0.2"
 	]
 }
 

+ 1 - 0
mybatis-plus-core/build.gradle

@@ -26,4 +26,5 @@ dependencies {
 	testCompile rootProject.ext.dependencies["hikaricp"]
 	testCompile rootProject.ext.dependencies["druid"]
 	testCompile rootProject.ext.dependencies["fastjson"]
+	testCompile rootProject.ext.dependencies["tomcatjdbc"]
 }

+ 41 - 0
mybatis-plus-core/src/test/java/com/baomidou/mybatisplus/test/h2/config/DBTomcatjdbcH2Config.java

@@ -0,0 +1,41 @@
+package com.baomidou.mybatisplus.test.h2.config;
+
+import java.sql.SQLException;
+
+import javax.sql.DataSource;
+
+import org.apache.tomcat.jdbc.pool.PoolConfiguration;
+import org.apache.tomcat.jdbc.pool.PoolProperties;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.jdbc.datasource.DataSourceTransactionManager;
+import org.springframework.transaction.annotation.EnableTransactionManagement;
+
+/**
+ * <p>
+ * Tomcatjdbc数据源
+ * </p>
+ *
+ * @author yuxiaobin
+ * @date 2018/1/3
+ */
+@Configuration
+@EnableTransactionManagement
+public class DBTomcatjdbcH2Config {
+
+
+    @Bean
+    public DataSource dataSource() throws SQLException {
+        PoolConfiguration configuration = new PoolProperties();
+        configuration.setUrl("jdbc:h2:mem:test;MODE=mysql;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE");
+        configuration.setUsername("sa");
+        configuration.setPassword("");
+        configuration.setDriverClassName(org.h2.Driver.class.getCanonicalName());
+        return new org.apache.tomcat.jdbc.pool.DataSource(configuration);
+    }
+
+    @Bean
+    public DataSourceTransactionManager transactionManager(DataSource ds) {
+        return new DataSourceTransactionManager(ds);
+    }
+}

+ 1 - 0
mybatis-plus-core/src/test/java/com/baomidou/mybatisplus/test/h2/config/MybatisPlusConfig.java

@@ -44,6 +44,7 @@ public class MybatisPlusConfig {
         configuration.setMapUnderscoreToCamelCase(true);
         sqlSessionFactory.setConfiguration(configuration);
         PaginationInterceptor pagination = new PaginationInterceptor();
+        pagination.setLocalPage(true);
         OptimisticLockerInterceptor optLock = new OptimisticLockerInterceptor();
         sqlSessionFactory.setPlugins(new Interceptor[]{
                 pagination,

+ 57 - 0
mybatis-plus-core/src/test/java/com/baomidou/mybatisplus/test/h2/tomcatjdbc/TomcatJdbcH2Test.java

@@ -0,0 +1,57 @@
+package com.baomidou.mybatisplus.test.h2.tomcatjdbc;
+
+import java.io.IOException;
+import java.sql.Connection;
+import java.sql.SQLException;
+
+import javax.sql.DataSource;
+
+import org.junit.BeforeClass;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.test.context.ContextConfiguration;
+import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
+import org.springframework.web.context.support.AnnotationConfigWebApplicationContext;
+
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.baomidou.mybatisplus.test.h2.base.H2Test;
+import com.baomidou.mybatisplus.test.h2.config.DBHikaricpH2Config;
+import com.baomidou.mybatisplus.test.h2.config.DBTomcatjdbcH2Config;
+import com.baomidou.mybatisplus.test.h2.config.MybatisConfigMetaObjOptLockConfig;
+import com.baomidou.mybatisplus.test.h2.entity.mapper.H2UserVersionAndLogicDeleteMapper;
+import com.baomidou.mybatisplus.test.h2.entity.persistent.H2UserVersionAndLogicDeleteEntity;
+
+/**
+ * <p>
+ *     Tomcatjdbc数据源测试
+ * </p>
+ *
+ * @author yuxiaobin
+ * @date 2018/1/3
+ */
+@RunWith(SpringJUnit4ClassRunner.class)
+@ContextConfiguration(classes = {DBTomcatjdbcH2Config.class, MybatisConfigMetaObjOptLockConfig.class})
+public class TomcatJdbcH2Test extends H2Test {
+
+    @BeforeClass
+    public static void initDB() throws SQLException, IOException {
+        @SuppressWarnings("resource")
+        AnnotationConfigWebApplicationContext context = new AnnotationConfigWebApplicationContext();
+        context.register(DBHikaricpH2Config.class);
+        context.register(MybatisConfigMetaObjOptLockConfig.class);
+        context.refresh();
+        DataSource ds = (DataSource) context.getBean("dataSource");
+        try (Connection conn = ds.getConnection()) {
+            initData(conn);
+        }
+    }
+
+    @Autowired
+    H2UserVersionAndLogicDeleteMapper userMapper;
+
+    @Test
+    public void testPerformanceInteceptor() {
+        userMapper.selectList(new EntityWrapper<H2UserVersionAndLogicDeleteEntity>());
+    }
+}