Browse Source

提交一波

miemie 7 years ago
parent
commit
c96c961eab

+ 3 - 3
mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/mapper/BaseMapper.java

@@ -72,6 +72,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 / / //_//_//_|/ /_\  /_///_/_\      Talk is cheap. Show me the code.
      _/             /
  */
+
 /**
  * <p>
  * Mapper 继承该接口后,无需编写 mapper.xml 文件,即可获得CRUD功能
@@ -126,7 +127,7 @@ public interface BaseMapper<T> {
      * 删除(根据ID 批量删除)
      * </p>
      *
-     * @param idList 主键ID列表
+     * @param idList 主键ID列表(不能为 null 以及 empty)
      */
     Integer deleteBatchIds(@Param("coll") Collection<? extends Serializable> idList);
 
@@ -163,7 +164,7 @@ public interface BaseMapper<T> {
      * 查询(根据ID 批量查询)
      * </p>
      *
-     * @param idList 主键ID列表
+     * @param idList 主键ID列表(不能为 null 以及 empty)
      */
     List<T> selectBatchIds(@Param("coll") Collection<? extends Serializable> idList);
 
@@ -241,5 +242,4 @@ public interface BaseMapper<T> {
      * @param queryWrapper 实体对象封装操作类
      */
     IPage<Map<String, Object>> selectMapsPage(IPage<T> page, @Param("ew") Wrapper<T> queryWrapper);
-
 }

+ 1 - 1
mybatis-plus/src/test/java/com/baomidou/mybatisplus/test/SqlTest.java

@@ -6,6 +6,6 @@ public class SqlTest {
 
     @Test
     public void test(){
-        System.out.println(1);
+        System.out.println(String.format("%s LIKE CONCAT('%%',#{%s},'%%')", "column", "value"));
     }
 }

+ 45 - 0
mybatis-plus/src/test/java/com/baomidou/mybatisplus/test/base/db/BaseDb.java

@@ -0,0 +1,45 @@
+package com.baomidou.mybatisplus.test.base.db;
+
+import java.io.BufferedReader;
+import java.io.FileReader;
+import java.io.IOException;
+import java.sql.SQLException;
+import java.sql.Statement;
+
+import com.baomidou.mybatisplus.test.h2.H2UserTest;
+
+/**
+ * @author miemie
+ * @since 2018-07-06
+ */
+public class BaseDb {
+
+    protected static void executeSql(Statement stmt, String path, String sqlFilename) throws SQLException, IOException {
+        try (
+            BufferedReader reader = new BufferedReader(new FileReader(filePath(path, sqlFilename)))
+        ) {
+            String line;
+            while ((line = reader.readLine()) != null) {
+                stmt.execute(line.replace(";", ""));
+            }
+        }
+    }
+
+    protected static String readFile(String path, String fileName) {
+        StringBuilder builder = new StringBuilder();
+        try (
+            BufferedReader reader = new BufferedReader(new FileReader(filePath(path, fileName)))
+        ) {
+            String line;
+            while ((line = reader.readLine()) != null)
+                builder.append(line).append(" ");
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+        return builder.toString();
+    }
+
+    private static String filePath(String path, String fileName) {
+        return H2UserTest.class.getResource(path + fileName).getPath();
+    }
+}

+ 39 - 0
mybatis-plus/src/test/java/com/baomidou/mybatisplus/test/base/entity/LogicTestData.java

@@ -0,0 +1,39 @@
+package com.baomidou.mybatisplus.test.base.entity;
+
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+import java.time.LocalTime;
+
+import com.baomidou.mybatisplus.annotation.FieldFill;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import com.baomidou.mybatisplus.annotation.TableName;
+
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+/**
+ * @author meimie
+ * @since 2018/6/7
+ */
+@Data
+@Accessors(chain = true)
+@TableName(value = "tb_test_data_logic")
+public class LogicTestData {
+
+    private Long id;
+    private Integer testInt;
+    private String testStr;
+    private Double testDouble;
+    private Boolean testBoolean;
+    private LocalDate testDate;
+    private LocalTime testTime;
+    private LocalDateTime testDateTime;
+    private LocalDateTime testTimestamp;
+    @TableField(fill = FieldFill.INSERT)
+    private LocalDateTime createDatetime;
+    @TableField(fill = FieldFill.UPDATE)
+    private LocalDateTime updateDatetime;
+    @TableLogic
+    private Boolean deleted;
+}

+ 0 - 3
mybatis-plus/src/test/java/com/baomidou/mybatisplus/test/base/entity/TestData.java

@@ -6,7 +6,6 @@ import java.time.LocalTime;
 
 import com.baomidou.mybatisplus.annotation.FieldFill;
 import com.baomidou.mybatisplus.annotation.TableField;
-import com.baomidou.mybatisplus.annotation.TableLogic;
 import com.baomidou.mybatisplus.annotation.TableName;
 
 import lombok.Data;
@@ -34,6 +33,4 @@ public class TestData {
     private LocalDateTime createDatetime;
     @TableField(fill = FieldFill.UPDATE)
     private LocalDateTime updateDatetime;
-    @TableLogic
-    private Boolean deleted;
 }

+ 12 - 0
mybatis-plus/src/test/java/com/baomidou/mybatisplus/test/base/mapper/LogicTestDataMapper.java

@@ -0,0 +1,12 @@
+package com.baomidou.mybatisplus.test.base.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.test.base.entity.LogicTestData;
+
+/**
+ * @author miemie
+ * @since 2018-07-06
+ */
+public interface LogicTestDataMapper extends BaseMapper<LogicTestData> {
+
+}

+ 8 - 39
mybatis-plus/src/test/java/com/baomidou/mybatisplus/test/h2/config/H2Db.java

@@ -1,7 +1,5 @@
 package com.baomidou.mybatisplus.test.h2.config;
 
-import java.io.BufferedReader;
-import java.io.FileReader;
 import java.io.IOException;
 import java.sql.Connection;
 import java.sql.SQLException;
@@ -12,54 +10,25 @@ import javax.sql.DataSource;
 import org.springframework.context.ApplicationContext;
 import org.springframework.context.support.ClassPathXmlApplicationContext;
 
-import com.baomidou.mybatisplus.test.h2.H2UserTest;
+import com.baomidou.mybatisplus.test.base.db.BaseDb;
 
-public class H2Db {
+public class H2Db extends BaseDb {
 
     public static void initH2User() throws SQLException, IOException {
         ApplicationContext context = new ClassPathXmlApplicationContext("classpath:h2/spring-test-h2.xml");
-        DataSource ds = (DataSource) context.getBean("dataSource");
+        DataSource ds = context.getBean("dataSource", DataSource.class);
         try (Connection conn = ds.getConnection()) {
-            H2Db.initData(conn, "user.ddl.sql", "user.insert.sql", "h2user");
+            H2Db.initData(conn, "/h2/", "user.ddl.sql", "user.insert.sql", "h2user");
         }
     }
 
-    public static void initData(Connection conn, String ddlFileName, String insertFileName, String tableName) throws SQLException, IOException {
-        String createTableSql = readFile(ddlFileName);
+    public static void initData(Connection conn, String path, String ddlFileName, String insertFileName, String tableName)
+        throws SQLException, IOException {
+        String createTableSql = readFile(path, ddlFileName);
         Statement stmt = conn.createStatement();
         stmt.execute(createTableSql);
         stmt.execute("truncate table " + tableName);
-        executeSql(stmt, insertFileName);
+        executeSql(stmt, path, insertFileName);
         conn.commit();
     }
-
-    public static void executeSql(Statement stmt, String sqlFilename) throws SQLException, IOException {
-        try (
-            BufferedReader reader = new BufferedReader(new FileReader(filePath(sqlFilename)))
-        ) {
-            String line;
-            while ((line = reader.readLine()) != null) {
-                stmt.execute(line.replace(";", ""));
-            }
-        }
-    }
-
-    public static String readFile(String fileName) {
-        StringBuilder builder = new StringBuilder();
-        try (
-            BufferedReader reader = new BufferedReader(new FileReader(filePath(fileName)))
-        ) {
-            String line;
-            while ((line = reader.readLine()) != null)
-                builder.append(line).append(" ");
-        } catch (IOException e) {
-            e.printStackTrace();
-        }
-        return builder.toString();
-    }
-
-    public static String filePath(String fileName) {
-        return H2UserTest.class.getResource("/h2/" + fileName).getPath();
-    }
-
 }

+ 73 - 4
mybatis-plus/src/test/java/com/baomidou/mybatisplus/test/mysql/MysqlTestDataMapperTest.java

@@ -1,9 +1,12 @@
 package com.baomidou.mybatisplus.test.mysql;
 
+import java.io.IOException;
 import java.math.BigDecimal;
+import java.sql.SQLException;
 import java.time.LocalDate;
 import java.time.LocalDateTime;
 import java.time.LocalTime;
+import java.util.Arrays;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -11,6 +14,7 @@ import java.util.Map;
 import javax.annotation.Resource;
 
 import org.junit.Assert;
+import org.junit.BeforeClass;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.springframework.test.context.ContextConfiguration;
@@ -20,8 +24,11 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.test.base.entity.LogicTestData;
 import com.baomidou.mybatisplus.test.base.entity.TestData;
+import com.baomidou.mybatisplus.test.base.mapper.LogicTestDataMapper;
 import com.baomidou.mybatisplus.test.base.mapper.TestDataMapper;
+import com.baomidou.mybatisplus.test.mysql.config.MysqlDb;
 
 /**
  * <p>
@@ -36,7 +43,14 @@ import com.baomidou.mybatisplus.test.base.mapper.TestDataMapper;
 public class MysqlTestDataMapperTest {
 
     @Resource
-    protected TestDataMapper mapper;
+    private TestDataMapper mapper;
+    @Resource
+    private LogicTestDataMapper logicMapper;
+
+    @BeforeClass
+    public static void init() throws IOException, SQLException {
+        MysqlDb.initMysqlData();
+    }
 
     @Test
     public void insertForeach() {
@@ -48,9 +62,38 @@ public class MysqlTestDataMapperTest {
                 .setTestDouble(BigDecimal.valueOf(3.3).multiply(BigDecimal.valueOf(i)).doubleValue())
                 .setTestBoolean((i + 3) % 2 == 0).setTestDate(nowDate)
                 .setTestTime(nowTime).setTestDateTime(nowDateTime));
+            logicMapper.insert(new LogicTestData().setTestInt(i).setTestStr(String.format("第%s条数据", i))
+                .setTestDouble(BigDecimal.valueOf(3.3).multiply(BigDecimal.valueOf(i)).doubleValue())
+                .setTestBoolean((i + 3) % 2 == 0).setTestDate(nowDate)
+                .setTestTime(nowTime).setTestDateTime(nowDateTime));
         }
     }
 
+    @Test
+    public void deleteById() {
+        mapper.deleteById(1014132604940615682L);
+    }
+
+    @Test
+    public void deleteByMap() {
+        Map<String, Object> map = new HashMap<>();
+        map.put("id", 1014361515785568258L);
+        map.put("test_int", 5);
+        mapper.deleteByMap(map);
+    }
+
+    @Test
+    public void delete() {
+        mapper.delete(new QueryWrapper<TestData>().lambda()
+            .eq(TestData::getId, 1014132604940615682L)
+            .eq(TestData::getTestInt, 1));
+    }
+
+    @Test
+    public void deleteBatchIds() {
+        mapper.deleteBatchIds(Arrays.asList(1014132604940615682L, 1014132604940615652L));
+    }
+
     @Test
     public void updateByIdTest() {
         mapper.updateById(new TestData().setId(1014132604940615682L).setTestInt(1111111111));
@@ -58,13 +101,39 @@ public class MysqlTestDataMapperTest {
 
     @Test
     public void updateTest() {
-        mapper.update(new TestData().setTestInt(222222222), new UpdateWrapper<TestData>()
-            .set("test_str", "我佛慈悲2").eq("id",1014132605058056193L));
+        // type 1
+        mapper.update(new TestData(), null);
+        // type 2
+        mapper.update(new TestData(), new UpdateWrapper<TestData>()
+            .set("test_int", 5));
+        // type 3
+        mapper.update(new TestData(), new UpdateWrapper<TestData>()
+            .set("test_int", 5).eq("id", 1014361515554881538L));
+        // type 4
+        mapper.update(new TestData(), new UpdateWrapper<TestData>()
+            .eq("id", 1014361515554881538L));
+        // type 5
+        mapper.update(new TestData(), new UpdateWrapper<TestData>()
+            .setEntity(new TestData().setTestInt(1)));
+        // type 6
+        mapper.update(new TestData(), new UpdateWrapper<TestData>()
+            .setEntity(new TestData().setTestInt(1))
+            .eq("id", 1014361515554881538L));
+        // type 7
+        mapper.update(new TestData(), new UpdateWrapper<TestData>()
+            .setEntity(new TestData().setTestInt(1))
+            .set("test_int", 55555)
+            .eq("id", 1014361515554881538L));
     }
 
     @Test
     public void selectById() {
-        System.out.println(mapper.selectById(1L));
+        mapper.selectById(1L);
+    }
+
+    @Test
+    public void selectBatchIds() {
+        mapper.selectBatchIds(Arrays.asList(1014132604940615682L, 1014132604940615652L));
     }
 
     @Test

+ 2 - 2
mybatis-plus/src/test/java/com/baomidou/mybatisplus/test/mysql/config/DBConfig.java

@@ -19,14 +19,14 @@ import org.springframework.transaction.annotation.EnableTransactionManagement;
 @EnableTransactionManagement
 public class DBConfig {
 
-    @Bean
+    @Bean("dataSource")
     public DataSource dataSource() throws SQLException {
         SimpleDriverDataSource dataSource = new SimpleDriverDataSource();
         dataSource.setDriver(new Driver());
         dataSource.setUrl("jdbc:mysql://localhost:3306/mybatis_plus?useSSL=false&useUnicode=true&characterEncoding=UTF-8");
         dataSource.setDriverClass(com.mysql.jdbc.Driver.class);
         dataSource.setUsername("root");
-        dataSource.setPassword("123123");
+        dataSource.setPassword("123456");
         return dataSource;
     }
 

+ 39 - 0
mybatis-plus/src/test/java/com/baomidou/mybatisplus/test/mysql/config/MysqlDb.java

@@ -0,0 +1,39 @@
+package com.baomidou.mybatisplus.test.mysql.config;
+
+import java.io.IOException;
+import java.sql.Connection;
+import java.sql.SQLException;
+import java.sql.Statement;
+
+import javax.sql.DataSource;
+
+import org.springframework.context.ApplicationContext;
+import org.springframework.context.support.ClassPathXmlApplicationContext;
+
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
+import com.baomidou.mybatisplus.test.base.db.BaseDb;
+
+public class MysqlDb extends BaseDb {
+
+    public static void initMysqlData() throws SQLException, IOException {
+        ApplicationContext context = new ClassPathXmlApplicationContext("classpath:mysql/spring-test-mysql.xml");
+        DataSource ds = context.getBean("dataSource", DataSource.class);
+        try (Connection conn = ds.getConnection()) {
+            initData(conn, "/mysql/", "test_data.ddl.sql", "test_data.insert.sql");
+        }
+    }
+
+    public static void initData(Connection conn, String path, String ddlFileName, String insertFileName)
+        throws SQLException, IOException {
+        String createTableSql = readFile(path, ddlFileName);
+        String[] sqls = createTableSql.split(";");
+        Statement stmt = conn.createStatement();
+        for (String sql : sqls) {
+            if (StringUtils.isNotEmpty(sql)) {
+                stmt.execute(createTableSql);
+            }
+        }
+        executeSql(stmt, path, insertFileName);
+        conn.commit();
+    }
+}

+ 10 - 5
mybatis-plus/src/test/resources/h2/user.insert.sql

@@ -1,5 +1,10 @@
-insert into h2user(test_id, name, test_date, age, price, test_type, version, deleted) values (101,'Tomcat', '2017-1-1 1:1:1', 3, 9.99, 1, 1, 0),
-insert into h2user(test_id, name, test_date, age, price, test_type, version, deleted) values (102,'Jerry', '2017-3-1 1:1:1', 2, 19.99, 2, 2, 0);
-insert into h2user(test_id, name, test_date, age, price, test_type, version, deleted) values (103,'Bob', '2017-4-1 1:1:1', 13, 99.99, 3, 3, 0);
-insert into h2user(test_id, name, test_date, age, price, test_type, version, deleted) values (104,'Joe', '2017-2-1 1:1:1', 18, 1.99, 1, 4, 0);
-insert into h2user(test_id, name, test_date, age, price, test_type, version, deleted) values (105,'Tony', '2017-2-1 1:1:1', 18, 1.99, 1, 5, 0);
+insert into h2user (test_id, name, test_date, age, price, test_type, version, deleted)
+values (101, 'Tomcat', '2017-1-1 1:1:1', 3, 9.99, 1, 1, 0);
+insert into h2user (test_id, name, test_date, age, price, test_type, version, deleted)
+values (102, 'Jerry', '2017-3-1 1:1:1', 2, 19.99, 2, 2, 0);
+insert into h2user (test_id, name, test_date, age, price, test_type, version, deleted)
+values (103, 'Bob', '2017-4-1 1:1:1', 13, 99.99, 3, 3, 0);
+insert into h2user (test_id, name, test_date, age, price, test_type, version, deleted)
+values (104, 'Joe', '2017-2-1 1:1:1', 18, 1.99, 1, 4, 0);
+insert into h2user (test_id, name, test_date, age, price, test_type, version, deleted)
+values (105, 'Tony', '2017-2-1 1:1:1', 18, 1.99, 1, 5, 0);

+ 2 - 2
mybatis-plus/src/test/resources/mysql/spring-test-mysql.xml

@@ -5,7 +5,7 @@
 
     <!--<context:component-scan base-package="com.baomidou.mybatisplus.test.h2.service"/>-->
 
-    <bean name="dbConfig" class="com.baomidou.mybatisplus.test.mysql.config.DBConfig"/>
-    <bean name="mybatisPlusConfig" class="com.baomidou.mybatisplus.test.mysql.config.MybatisPlusConfig"/>
+    <bean name="/DBConfig" class="com.baomidou.mybatisplus.test.mysql.config.DBConfig"/>
+    <bean name="/MybatisPlusConfig" class="com.baomidou.mybatisplus.test.mysql.config.MybatisPlusConfig"/>
 
 </beans>

+ 16 - 1
mybatis-plus/src/test/resources/mysql/initData.sql → mybatis-plus/src/test/resources/mysql/test_data.ddl.sql

@@ -1,4 +1,4 @@
-CREATE TABLE IF NOT EXISTS tb_test_data (
+CREATE TABLE IF NOT EXISTS tb_test_data_logic (
   id              BIGINT primary key,
   test_int        integer,
   test_str        varchar(50),
@@ -14,3 +14,18 @@ CREATE TABLE IF NOT EXISTS tb_test_data (
 )
   ENGINE = innodb
   DEFAULT CHARSET = utf8;
+CREATE TABLE IF NOT EXISTS tb_test_data (
+    id              BIGINT primary key,
+    test_int        integer,
+    test_str        varchar(50),
+    test_double     double,
+    test_boolean    tinyint(1),
+    test_date       date,
+    test_time       time,
+    test_date_time  datetime,
+    test_timestamp  timestamp,
+    create_datetime datetime,
+    update_datetime datetime
+)
+    ENGINE = innodb
+DEFAULT CHARSET = utf8;

+ 0 - 0
mybatis-plus/src/test/resources/mysql/test_data.insert.sql