浏览代码

batch test

miemie 4 年之前
父节点
当前提交
bad73aa660

+ 16 - 7
mybatis-plus/src/test/java/com/baomidou/mybatisplus/test/BaseDbTest.java

@@ -94,25 +94,34 @@ public abstract class BaseDbTest<T> extends TypeReference<T> {
         return dataSource;
     }
 
-    protected SqlSession autoCommitSession(boolean autoCommit) {
-        return sqlSessionFactory.openSession(autoCommit);
-    }
-
     protected void doTest(Consumer<T> consumer) {
-        try (SqlSession sqlSession = autoCommitSession(false)) {
+        try (SqlSession sqlSession = sqlSessionFactory.openSession()) {
             doTest(sqlSession, consumer);
         }
     }
 
     protected void doTestAutoCommit(Consumer<T> consumer) {
-        try (SqlSession sqlSession = autoCommitSession(true)) {
-            doTest(sqlSession, consumer);
+        try (SqlSession sqlSession = sqlSessionFactory.openSession()) {
+            doTestAutoCommit(sqlSession, consumer);
         }
     }
 
     protected void doTest(SqlSession sqlSession, Consumer<T> consumer) {
+        doMapper(sqlSession, false, consumer);
+    }
+
+    protected void doTestAutoCommit(SqlSession sqlSession, Consumer<T> consumer) {
+        doMapper(sqlSession, true, consumer);
+    }
+
+    protected void doMapper(SqlSession sqlSession, boolean commit, Consumer<T> consumer) {
         T t = sqlSession.getMapper(mapper);
         consumer.accept(t);
+        if (commit) {
+            sqlSession.commit();
+        } else {
+            sqlSession.rollback();
+        }
     }
 
     protected List<String> tableSql() {

+ 40 - 0
mybatis-plus/src/test/java/com/baomidou/mybatisplus/test/batch/BatchTest.java

@@ -0,0 +1,40 @@
+package com.baomidou.mybatisplus.test.batch;
+
+import com.baomidou.mybatisplus.test.BaseDbTest;
+import org.apache.ibatis.executor.BatchExecutor;
+import org.apache.ibatis.session.ExecutorType;
+import org.junit.jupiter.api.Test;
+
+import java.util.Arrays;
+import java.util.List;
+
+import static org.assertj.core.api.Assertions.assertThat;
+
+/**
+ * @author miemie
+ * @since 2021-01-06
+ */
+class BatchTest extends BaseDbTest<EntityMapper> {
+
+    @Test
+    void save() {
+        doTestAutoCommit(sqlSessionFactory.openSession(ExecutorType.BATCH), i -> {
+            int i1 = i.insert(new Entity("老王"));
+            assertThat(i1).isEqualTo(BatchExecutor.BATCH_UPDATE_RETURN_VALUE);
+            int i2 = i.insert(new Entity("老李"));
+            assertThat(i2).isEqualTo(BatchExecutor.BATCH_UPDATE_RETURN_VALUE);
+        });
+
+        doTest(i -> {
+            assertThat(i.selectCount(null)).isEqualTo(2);
+        });
+    }
+
+    @Override
+    protected List<String> tableSql() {
+        return Arrays.asList("drop table if exists entity", "CREATE TABLE IF NOT EXISTS entity (" +
+            "id BIGINT NOT NULL," +
+            "name VARCHAR(30) NULL DEFAULT NULL," +
+            "PRIMARY KEY (id))");
+    }
+}

+ 24 - 0
mybatis-plus/src/test/java/com/baomidou/mybatisplus/test/batch/Entity.java

@@ -0,0 +1,24 @@
+package com.baomidou.mybatisplus.test.batch;
+
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+
+/**
+ * @author miemie
+ * @since 2020-06-23
+ */
+@Data
+@NoArgsConstructor
+public class Entity implements Serializable {
+    private static final long serialVersionUID = 6962439201546719734L;
+
+    private Long id;
+
+    private String name;
+
+    public Entity(String name) {
+        this.name = name;
+    }
+}

+ 10 - 0
mybatis-plus/src/test/java/com/baomidou/mybatisplus/test/batch/EntityMapper.java

@@ -0,0 +1,10 @@
+package com.baomidou.mybatisplus.test.batch;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * @author miemie
+ * @since 2020-06-23
+ */
+public interface EntityMapper extends BaseMapper<Entity> {
+}

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

@@ -15,7 +15,7 @@ import static org.assertj.core.api.Assertions.assertThat;
  * @author miemie
  * @since 2020-06-23
  */
-public class EnumTest extends BaseDbTest<EntityMapper> {
+class EnumTest extends BaseDbTest<EntityMapper> {
 
     @Test
     void test() {

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

@@ -21,7 +21,7 @@ import static org.assertj.core.api.Assertions.assertThat;
  * @author miemie
  * @since 2020-06-23
  */
-public class PaginationTest extends BaseDbTest<EntityMapper> {
+class PaginationTest extends BaseDbTest<EntityMapper> {
 
     @Test
     void page() {

+ 1 - 1
mybatis-plus/src/test/resources/logback.xml

@@ -11,7 +11,7 @@
         <appender-ref ref="STDOUT"/>
     </logger>
 
-    <root level="info">
+    <root level="debug">
         <appender-ref ref="STDOUT"/>
     </root>
 </configuration>