瀏覽代碼

Merge branch 'dev'

jobob 8 年之前
父節點
當前提交
e2e74821c5

+ 3 - 3
src/main/resources/templates/mapper.xml.vm

@@ -29,9 +29,9 @@
 #if(${baseColumnList})
     <!-- 通用查询结果列 -->
     <sql id="Base_Column_List">
-		#foreach($field in ${table.commonFields})
-			#if(${field.name} == ${field.propertyName})${field.name}#else${field.name} AS ${field.propertyName}#end,
-		#end
+#foreach($field in ${table.commonFields})
+	#if(${field.name} == ${field.propertyName})${field.name}#else${field.name} AS ${field.propertyName}#end,
+#end
         ${table.fieldNames}
     </sql>
 

+ 62 - 0
src/test/java/com/baomidou/mybatisplus/test/CrudTest.java

@@ -0,0 +1,62 @@
+/**
+ * Copyright (c) 2011-2020, hubin (jobob@qq.com).
+ * <p>
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not
+ * use this file except in compliance with the License. You may obtain a copy of
+ * the License at
+ * <p>
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * <p>
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package com.baomidou.mybatisplus.test;
+
+import java.io.InputStream;
+
+import org.apache.commons.dbcp2.BasicDataSource;
+import org.apache.ibatis.session.SqlSessionFactory;
+
+import com.baomidou.mybatisplus.MybatisSessionFactoryBuilder;
+import com.baomidou.mybatisplus.entity.GlobalConfiguration;
+import com.baomidou.mybatisplus.toolkit.GlobalConfigUtils;
+
+/**
+ * <p>
+ * CRUD 测试
+ * </p>
+ *
+ * @author hubin
+ * @date 2017-06-18
+ */
+public class CrudTest {
+
+    public GlobalConfiguration globalConfiguration() {
+        GlobalConfiguration global = GlobalConfigUtils.defaults();
+        // global.setAutoSetDbType(true);
+        // 设置全局校验机制为FieldStrategy.Empty
+        global.setFieldStrategy(2);
+        return global;
+    }
+
+    public SqlSessionFactory sqlSessionFactory() {
+        GlobalConfiguration global = this.globalConfiguration();
+        BasicDataSource dataSource = new BasicDataSource();
+        dataSource.setDriverClassName("com.mysql.jdbc.Driver");
+        dataSource.setUrl("jdbc:mysql://127.0.0.1:3306/mybatis-plus?characterEncoding=UTF-8");
+        dataSource.setUsername("root");
+        dataSource.setPassword("521");
+        dataSource.setMaxTotal(1000);
+        GlobalConfigUtils.setMetaData(dataSource, global);
+        // 加载配置文件
+        InputStream inputStream = CrudTest.class.getClassLoader().getResourceAsStream("mysql-config.xml");
+        MybatisSessionFactoryBuilder factoryBuilder = new MybatisSessionFactoryBuilder();
+        factoryBuilder.setGlobalConfig(global);
+        return factoryBuilder.build(inputStream);
+    }
+
+
+}

+ 5 - 33
src/test/java/com/baomidou/mybatisplus/test/GlobalConfigurationTest.java

@@ -15,24 +15,18 @@
  */
 package com.baomidou.mybatisplus.test;
 
-import java.io.InputStream;
 import java.util.Date;
 import java.util.UUID;
 
-import org.apache.commons.dbcp2.BasicDataSource;
 import org.apache.ibatis.session.RowBounds;
 import org.apache.ibatis.session.SqlSession;
-import org.apache.ibatis.session.SqlSessionFactory;
 import org.junit.Assert;
 
-import com.baomidou.mybatisplus.MybatisSessionFactoryBuilder;
-import com.baomidou.mybatisplus.entity.GlobalConfiguration;
 import com.baomidou.mybatisplus.mapper.Condition;
 import com.baomidou.mybatisplus.test.mysql.entity.NotPK;
 import com.baomidou.mybatisplus.test.mysql.entity.Test;
 import com.baomidou.mybatisplus.test.mysql.mapper.NotPKMapper;
 import com.baomidou.mybatisplus.test.mysql.mapper.TestMapper;
-import com.baomidou.mybatisplus.toolkit.GlobalConfigUtils;
 
 /**
  * <p>
@@ -42,30 +36,14 @@ import com.baomidou.mybatisplus.toolkit.GlobalConfigUtils;
  * @author Caratacus
  * @Date 2016-12-22
  */
-public class GlobalConfigurationTest {
+public class GlobalConfigurationTest extends CrudTest {
 
     /**
      * 全局配置测试
      */
-    @SuppressWarnings("unchecked")
-    public static void main(String[] args) {
-        GlobalConfiguration global = GlobalConfigUtils.defaults();
-        // global.setAutoSetDbType(true);
-        // 设置全局校验机制为FieldStrategy.Empty
-        global.setFieldStrategy(2);
-        BasicDataSource dataSource = new BasicDataSource();
-        dataSource.setDriverClassName("com.mysql.jdbc.Driver");
-        dataSource.setUrl("jdbc:mysql://127.0.0.1:3306/mybatis-plus?characterEncoding=UTF-8");
-        dataSource.setUsername("root");
-        dataSource.setPassword("521");
-        dataSource.setMaxTotal(1000);
-        GlobalConfigUtils.setMetaData(dataSource, global);
-        // 加载配置文件
-        InputStream inputStream = GlobalConfigurationTest.class.getClassLoader().getResourceAsStream("mysql-config.xml");
-        MybatisSessionFactoryBuilder factoryBuilder = new MybatisSessionFactoryBuilder();
-        factoryBuilder.setGlobalConfig(global);
-        SqlSessionFactory sessionFactory = factoryBuilder.build(inputStream);
-        SqlSession session = sessionFactory.openSession(false);
+    @org.junit.Test
+    public void testGlobalConfig() {
+        SqlSession session = this.sqlSessionFactory().openSession(false);
         TestMapper testMapper = session.getMapper(TestMapper.class);
         /*Wrapper type = Condition.instance().eq("id",1).or().in("type", new Object[]{1, 2, 3, 4, 5, 6});
         List list = testMapper.selectList(type);
@@ -76,7 +54,7 @@ public class GlobalConfigurationTest {
         test.setType("");
         testMapper.insert(test);
 
-        SqlSession sqlSession = sessionFactory.openSession(false);
+        SqlSession sqlSession = this.sqlSessionFactory().openSession(false);
         NotPKMapper pkMapper = sqlSession.getMapper(NotPKMapper.class);
         NotPK notPK = new NotPK();
         notPK.setUuid(UUID.randomUUID().toString());
@@ -100,10 +78,4 @@ public class GlobalConfigurationTest {
         sqlSession.commit();
     }
 
-
-    @org.junit.Test
-    public void testStringFormat() {
-        String str = "'%s'";
-        System.out.println(String.format(str, "abc"));
-    }
 }

+ 6 - 13
src/test/java/com/baomidou/mybatisplus/test/activerecord/ActiveRecordTest.java

@@ -15,17 +15,14 @@
  */
 package com.baomidou.mybatisplus.test.activerecord;
 
-import java.io.InputStream;
 import java.util.List;
 import java.util.Map;
 
 import org.apache.ibatis.jdbc.SQL;
-import org.apache.ibatis.session.SqlSessionFactory;
 
-import com.baomidou.mybatisplus.MybatisSessionFactoryBuilder;
 import com.baomidou.mybatisplus.plugins.Page;
+import com.baomidou.mybatisplus.test.CrudTest;
 import com.baomidou.mybatisplus.test.mysql.entity.Test;
-import com.baomidou.mybatisplus.test.mysql.mapper.TestMapper;
 import com.baomidou.mybatisplus.toolkit.IdWorker;
 import com.baomidou.mybatisplus.toolkit.TableInfoHelper;
 
@@ -37,15 +34,11 @@ import com.baomidou.mybatisplus.toolkit.TableInfoHelper;
  * @author Caratacus
  * @date 2016-10-11
  */
-public class ActiveRecordTest {
-
-    public static void main(String[] args) {
-        // 加载配置文件
-        InputStream in = TestMapper.class.getClassLoader().getResourceAsStream("mysql-config.xml");
-        MybatisSessionFactoryBuilder mf = new MybatisSessionFactoryBuilder();
-        SqlSessionFactory sqlSessionFactory = mf.build(in);
-        TableInfoHelper.initSqlSessionFactory(sqlSessionFactory);
-        sqlSessionFactory.openSession(false);
+public class ActiveRecordTest extends CrudTest {
+
+    @org.junit.Test
+    public void test() {
+        TableInfoHelper.initSqlSessionFactory(this.sqlSessionFactory());
         // 保存一条记录
         Test t1 = new Test();
         t1.setType("test10");

+ 5 - 11
src/test/java/com/baomidou/mybatisplus/test/mysql/CircularLabelsTest.java

@@ -15,16 +15,14 @@
  */
 package com.baomidou.mybatisplus.test.mysql;
 
-import java.io.InputStream;
 import java.util.Arrays;
 import java.util.Date;
 import java.util.List;
 
 import org.apache.ibatis.session.SqlSession;
-import org.apache.ibatis.session.SqlSessionFactory;
 
-import com.baomidou.mybatisplus.MybatisSessionFactoryBuilder;
 import com.baomidou.mybatisplus.plugins.Page;
+import com.baomidou.mybatisplus.test.CrudTest;
 import com.baomidou.mybatisplus.test.mysql.entity.Test;
 import com.baomidou.mybatisplus.test.mysql.entity.User;
 import com.baomidou.mybatisplus.test.mysql.mapper.TestMapper;
@@ -38,18 +36,14 @@ import com.baomidou.mybatisplus.test.mysql.mapper.UserMapper;
  * @author Caratacus
  * @Date 2016-12-21
  */
-public class CircularLabelsTest {
+public class CircularLabelsTest extends CrudTest {
 
     /**
      * 循环标签 测试
      */
-    public static void main(String[] args) {
-
-        // 加载配置文件
-        InputStream in = CircularLabelsTest.class.getClassLoader().getResourceAsStream("mysql-config.xml");
-        MybatisSessionFactoryBuilder mf = new MybatisSessionFactoryBuilder();
-        SqlSessionFactory sessionFactory = mf.build(in);
-        SqlSession session = sessionFactory.openSession();
+    @org.junit.Test
+    public void test() {
+        SqlSession session = this.sqlSessionFactory().openSession();
         UserMapper userMapper = session.getMapper(UserMapper.class);
         Page<User> page = new Page<>(1, 6);
         List<User> users = userMapper.forSelect(page, Arrays.asList("1", "2", "3"));

+ 13 - 13
src/test/java/com/baomidou/mybatisplus/test/mysql/LogicDeleteTest.java

@@ -15,18 +15,16 @@
  */
 package com.baomidou.mybatisplus.test.mysql;
 
-import java.io.InputStream;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
 import org.apache.ibatis.session.SqlSession;
-import org.apache.ibatis.session.SqlSessionFactory;
+import org.junit.Test;
 
-import com.baomidou.mybatisplus.MybatisSessionFactoryBuilder;
 import com.baomidou.mybatisplus.entity.GlobalConfiguration;
 import com.baomidou.mybatisplus.mapper.Condition;
-import com.baomidou.mybatisplus.mapper.LogicSqlInjector;
+import com.baomidou.mybatisplus.test.CrudTest;
 import com.baomidou.mybatisplus.test.mysql.entity.User;
 import com.baomidou.mybatisplus.test.mysql.mapper.UserMapper;
 import com.baomidou.mybatisplus.toolkit.IdWorker;
@@ -39,17 +37,19 @@ import com.baomidou.mybatisplus.toolkit.IdWorker;
  * @author hubin
  * @date 2017-09-09
  */
-public class LogicDeleteTest {
+public class LogicDeleteTest extends CrudTest {
 
-    public static void main(String[] args) {
-        // 加载配置文件
-        InputStream in = UserMapperTest.class.getClassLoader().getResourceAsStream("mysql-config.xml");
-        MybatisSessionFactoryBuilder mf = new MybatisSessionFactoryBuilder();
-        GlobalConfiguration gc = new GlobalConfiguration(new LogicSqlInjector());// 注入的是逻辑处理器
+    @Override
+    public GlobalConfiguration globalConfiguration() {
+        GlobalConfiguration gc = super.globalConfiguration();
         gc.setLogicDeleteValue("-1");// 逻辑删除值 -1 测试字段 type
-        mf.setGlobalConfig(gc);
-        SqlSessionFactory sessionFactory = mf.build(in);
-        SqlSession session = sessionFactory.openSession();
+        return gc;
+    }
+
+    @Test
+    public void test() {
+        // 加载配置文件
+        SqlSession session = this.sqlSessionFactory().openSession();
         UserMapper userMapper = session.getMapper(UserMapper.class);
         System.err.println(" debug run 查询执行 user 表数据变化! ");
         long id = IdWorker.getId();

+ 5 - 12
src/test/java/com/baomidou/mybatisplus/test/mysql/NoXMLTest.java

@@ -15,17 +15,15 @@
  */
 package com.baomidou.mybatisplus.test.mysql;
 
-import java.io.InputStream;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
 import org.apache.ibatis.session.RowBounds;
 import org.apache.ibatis.session.SqlSession;
-import org.apache.ibatis.session.SqlSessionFactory;
 
-import com.baomidou.mybatisplus.MybatisSessionFactoryBuilder;
 import com.baomidou.mybatisplus.plugins.Page;
+import com.baomidou.mybatisplus.test.CrudTest;
 import com.baomidou.mybatisplus.test.mysql.entity.Test;
 import com.baomidou.mybatisplus.test.mysql.mapper.TestMapper;
 import com.baomidou.mybatisplus.toolkit.IdWorker;
@@ -38,16 +36,11 @@ import com.baomidou.mybatisplus.toolkit.IdWorker;
  * @author Caratacus
  * @date 2016-09-26
  */
-public class NoXMLTest {
+public class NoXMLTest extends CrudTest {
 
-    public static void main(String[] args) {
-        /*
-         * 加载配置文件
-		 */
-        InputStream in = NoXMLTest.class.getClassLoader().getResourceAsStream("mysql-config.xml");
-        MybatisSessionFactoryBuilder mf = new MybatisSessionFactoryBuilder();
-        SqlSessionFactory sessionFactory = mf.build(in);
-        SqlSession sqlSession = sessionFactory.openSession();
+    @org.junit.Test
+    public void test() {
+        SqlSession sqlSession = this.sqlSessionFactory().openSession();
         /**
          * 查询是否有结果
          */

+ 3 - 8
src/test/java/com/baomidou/mybatisplus/test/mysql/SqlRunnerTest.java

@@ -15,17 +15,15 @@
  */
 package com.baomidou.mybatisplus.test.mysql;
 
-import java.io.InputStream;
 import java.util.List;
 import java.util.Map;
 
-import org.apache.ibatis.session.SqlSessionFactory;
 import org.junit.Assert;
 import org.junit.Test;
 
-import com.baomidou.mybatisplus.MybatisSessionFactoryBuilder;
 import com.baomidou.mybatisplus.mapper.SqlRunner;
 import com.baomidou.mybatisplus.plugins.Page;
+import com.baomidou.mybatisplus.test.CrudTest;
 import com.baomidou.mybatisplus.toolkit.CollectionUtils;
 import com.baomidou.mybatisplus.toolkit.TableInfoHelper;
 
@@ -37,17 +35,14 @@ import com.baomidou.mybatisplus.toolkit.TableInfoHelper;
  * @author Caratacus
  * @date 2016-12-19
  */
-public class SqlRunnerTest {
+public class SqlRunnerTest extends CrudTest {
 
     @Test
     public void test1() {
         /*
          * 加载配置文件
 		 */
-        InputStream in = SqlRunnerTest.class.getClassLoader().getResourceAsStream("mysql-config.xml");
-        MybatisSessionFactoryBuilder mf = new MybatisSessionFactoryBuilder();
-        SqlSessionFactory sessionFactory = mf.build(in);
-        TableInfoHelper.initSqlSessionFactory(sessionFactory);
+        TableInfoHelper.initSqlSessionFactory(this.sqlSessionFactory());
 
         boolean b = SqlRunner.db().insert("INSERT INTO `test` (`id`, `type`) VALUES ('107880983085826048', 't1021')");
         System.out.println(b);

+ 7 - 13
src/test/java/com/baomidou/mybatisplus/test/mysql/TransactionalTest.java

@@ -15,12 +15,10 @@
  */
 package com.baomidou.mybatisplus.test.mysql;
 
-import java.io.InputStream;
-
 import org.apache.ibatis.session.SqlSession;
-import org.apache.ibatis.session.SqlSessionFactory;
+import org.junit.Test;
 
-import com.baomidou.mybatisplus.MybatisSessionFactoryBuilder;
+import com.baomidou.mybatisplus.test.CrudTest;
 import com.baomidou.mybatisplus.test.mysql.entity.User;
 import com.baomidou.mybatisplus.test.mysql.mapper.UserMapper;
 import com.baomidou.mybatisplus.toolkit.IdWorker;
@@ -33,21 +31,17 @@ import com.baomidou.mybatisplus.toolkit.IdWorker;
  * @author hubin
  * @date 2016-09-20
  */
-public class TransactionalTest {
+public class TransactionalTest extends CrudTest {
 
     /**
      * <p>
      * 事务测试
      * </p>
      */
-    public static void main(String[] args) {
-        /*
-         * 加载配置文件
-		 */
-        InputStream in = TransactionalTest.class.getClassLoader().getResourceAsStream("mysql-config.xml");
-        MybatisSessionFactoryBuilder mf = new MybatisSessionFactoryBuilder();
-        SqlSessionFactory sessionFactory = mf.build(in);
-        SqlSession sqlSession = sessionFactory.openSession();
+    @Test
+    public void test() {
+        SqlSession sqlSession = this.sqlSessionFactory().openSession();
+
         /**
          * 插入
          */

+ 6 - 12
src/test/java/com/baomidou/mybatisplus/test/mysql/URPTest.java

@@ -15,14 +15,11 @@
  */
 package com.baomidou.mybatisplus.test.mysql;
 
-import java.io.InputStream;
-
 import org.apache.ibatis.session.SqlSession;
-import org.apache.ibatis.session.SqlSessionFactory;
+import org.junit.Test;
 
-import com.baomidou.mybatisplus.MybatisSessionFactoryBuilder;
-import com.baomidou.mybatisplus.entity.GlobalConfiguration;
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.baomidou.mybatisplus.test.CrudTest;
 import com.baomidou.mybatisplus.test.mysql.entity.PhoneNumber;
 import com.baomidou.mybatisplus.test.mysql.entity.Role;
 import com.baomidou.mybatisplus.test.mysql.entity.User;
@@ -38,15 +35,12 @@ import com.baomidou.mybatisplus.toolkit.IdWorker;
  * @author junyu
  * @Date 2016-09-09
  */
-public class URPTest {
+public class URPTest extends CrudTest {
 
-    public static void main(String[] args) {
+    @Test
+    public void urpTest() {
         // 加载配置文件
-        InputStream in = UserMapperTest.class.getClassLoader().getResourceAsStream("mysql-config.xml");
-        MybatisSessionFactoryBuilder mf = new MybatisSessionFactoryBuilder();
-        mf.setGlobalConfig(new GlobalConfiguration(new MySqlInjector()));
-        SqlSessionFactory sessionFactory = mf.build(in);
-        SqlSession session = sessionFactory.openSession();
+        SqlSession session = this.sqlSessionFactory().openSession();
 
         UserMapper userMapper = session.getMapper(UserMapper.class);
         RoleMapper roleMapper = session.getMapper(RoleMapper.class);

+ 20 - 34
src/test/java/com/baomidou/mybatisplus/test/mysql/UserMapperTest.java

@@ -23,12 +23,14 @@ import java.util.Map;
 
 import org.apache.ibatis.session.SqlSession;
 import org.apache.ibatis.session.SqlSessionFactory;
+import org.junit.Test;
 
 import com.baomidou.mybatisplus.MybatisSessionFactoryBuilder;
 import com.baomidou.mybatisplus.entity.GlobalConfiguration;
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.baomidou.mybatisplus.plugins.Page;
 import com.baomidou.mybatisplus.plugins.pagination.Pagination;
+import com.baomidou.mybatisplus.test.CrudTest;
 import com.baomidou.mybatisplus.test.mysql.entity.Role;
 import com.baomidou.mybatisplus.test.mysql.entity.User;
 import com.baomidou.mybatisplus.test.mysql.mapper.UserMapper;
@@ -47,7 +49,19 @@ import com.baomidou.mybatisplus.toolkit.IdWorker;
  * @author hubin sjy
  * @Date 2016-01-23
  */
-public class UserMapperTest {
+public class UserMapperTest extends CrudTest {
+
+    @Override
+    public GlobalConfiguration globalConfiguration() {
+        GlobalConfiguration gc = super.globalConfiguration();
+        /**
+         * 设置,自定义 元对象填充器,实现公共字段自动写入
+         */
+        //gc.setMetaObjectHandler(new MyMetaObjectHandler());
+        // gc.setCapitalMode(true);
+        gc.setDbColumnUnderline(true);
+        return gc;
+    }
 
     /**
      * RUN 测试
@@ -61,37 +75,9 @@ public class UserMapperTest {
      * <br>
      * 调整后的SQL优先级:xmlSql > sqlProvider > crudSql <br>
      */
-    public static void main(String[] args) {
-
-        // 加载配置文件
-        InputStream in = UserMapperTest.class.getClassLoader().getResourceAsStream("mysql-config.xml");
-
-		/*
-         * 此处采用 MybatisSessionFactoryBuilder 构建
-		 * SqlSessionFactory,目的是引入BaseMapper功能
-		 */
-        MybatisSessionFactoryBuilder mf = new MybatisSessionFactoryBuilder();
-
-		/*
-         * 1、数据库字段驼峰命名不需要任何设置 2、当前演示是驼峰下划线混合命名 3、如下开启,表示数据库字段使用下划线命名,该设置是全局的。
-		 * 开启该设置实体可无 @TableId(value = "test_id") 字段映射
-		 */
-        // mf.setDbColumnUnderline(true);
-
-        /**
-         * 设置,自定义 SQL 注入器
-         */
-        GlobalConfiguration gc = new GlobalConfiguration(new MySqlInjector());
-        /**
-         * 设置,自定义 元对象填充器,实现公共字段自动写入
-         */
-        //gc.setMetaObjectHandler(new MyMetaObjectHandler());
-        // gc.setCapitalMode(true);
-        gc.setDbColumnUnderline(true);
-        mf.setGlobalConfig(gc);
-
-        SqlSessionFactory sessionFactory = mf.build(in);
-        SqlSession session = sessionFactory.openSession();
+    @Test
+    public void crudTest() {
+        SqlSession session = this.sqlSessionFactory().openSession();
         UserMapper userMapper = session.getMapper(UserMapper.class);
         System.err.println(" debug run 查询执行 user 表数据变化! ");
         userMapper.deleteAll();
@@ -286,7 +272,7 @@ public class UserMapperTest {
         ew.setSqlSelect("age,name");
 
 		/*
-		 * 查询条件,SQL 片段(根据常用的写SQL的方式按顺序添加相关条件即可)
+         * 查询条件,SQL 片段(根据常用的写SQL的方式按顺序添加相关条件即可)
 		 */
         ew.where("name like {0}", "'%dateBatch%'").and("age={0}", 3).orderBy("age,name", true);
         List<User> paginList = userMapper.selectPage(page, ew);
@@ -304,7 +290,7 @@ public class UserMapperTest {
         }
 
 		/*
-		 * 用户列表
+         * 用户列表
 		 */
         System.err.println(" selectList EntityWrapper == null \n");
         paginList = userMapper.selectList(null);