Prechádzať zdrojové kódy

分页动态参数需要的相关模型

miemie 6 rokov pred
rodič
commit
b26a8e4774

+ 30 - 0
mybatis-plus-extension/src/main/java/com/baomidou/mybatisplus/extension/plugins/pagination/DialectModel.java

@@ -0,0 +1,30 @@
+package com.baomidou.mybatisplus.extension.plugins.pagination;
+
+import lombok.Data;
+import org.apache.ibatis.mapping.ParameterMapping;
+
+import java.util.List;
+import java.util.function.Consumer;
+
+/**
+ * @author miemie
+ * @since 2018-10-31
+ */
+@Data
+public class DialectModel {
+
+    /**
+     * 分页方言 sql
+     */
+    private String dialectSql;
+    /**
+     * 消费偏移量
+     */
+    private Consumer<List<ParameterMapping>> offsetConsumer = i -> {
+    };
+    /**
+     * 消费范围量
+     */
+    private Consumer<List<ParameterMapping>> limitConsumer = i -> {
+    };
+}

+ 32 - 0
mybatis-plus-extension/src/test/java/com/baomidou/mybatisplus/extension/plugins/pagination/DialectModelTest.java

@@ -0,0 +1,32 @@
+package com.baomidou.mybatisplus.extension.plugins.pagination;
+
+import org.apache.ibatis.mapping.ParameterMapping;
+import org.junit.Test;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @author miemie
+ * @since 2018-10-31
+ */
+public class DialectModelTest {
+
+    private static ParameterMapping testMapping = null;
+
+    @Test
+    public void m01() {
+        List<ParameterMapping> list = new ArrayList<>();
+        DialectModel model = model();
+        model.getOffsetConsumer().accept(list);
+        model.getLimitConsumer().accept(list);
+        System.out.println(list.size());
+    }
+
+    private DialectModel model() {
+        DialectModel model = new DialectModel();
+        model.setOffsetConsumer(i -> i.add(testMapping));
+        model.setLimitConsumer(i -> i.add(i.size() - 1, testMapping));
+        return model;
+    }
+}

+ 6 - 0
mybatis-plus/src/test/java/com/baomidou/mybatisplus/test/mysql/MysqlTestDataMapperTest.java

@@ -287,4 +287,10 @@ public class MysqlTestDataMapperTest {
         commonMapper.selectList(Condition.lambda(new CommonData().setTestInt(12)).orderByAsc(CommonData::getCreateDatetime));
         commonMapper.selectList(Condition.lambda(new CommonData().setTestInt(12)).orderByAsc(CommonData::getCreateDatetime));
         commonLogicMapper.selectList(Condition.lambda(new CommonLogicData().setTestInt(12)).orderByAsc(CommonLogicData::getCreateDatetime));
         commonLogicMapper.selectList(Condition.lambda(new CommonLogicData().setTestInt(12)).orderByAsc(CommonLogicData::getCreateDatetime));
     }
     }
+
+    @Test
+    public void xxx() {
+        mysqlMapper.selectPage(new Page<>(1, 5),
+            Condition.<MysqlData>create().gt("`order`", 1).gt("`group`", 2));
+    }
 }
 }