Browse Source

add: Page不是RowBounds的实例,分页代码如果有参数,最好是手动加上@Param("param") UserParam param。(不加@Param,默认在xml里取值也是需要param.xxx 前缀param.是变量名,不推荐,因为如果编译时去掉了debug信息,这个变量名可能会随机var1导致xml无法读取到正确的参数)

yuxiaobin 5 months ago
parent
commit
d39a98f86c

+ 2 - 0
mybatis-plus-sample-pagination/src/main/java/com/baomidou/mybatisplus/samples/pagination/mapper/UserMapper.java

@@ -61,4 +61,6 @@ public interface UserMapper extends BaseMapper<User> {
     List<User> iPageSelect(IPage<User> myPage);
 
     List<User> rowBoundList(RowBounds rowBounds, Map<String, Object> map);
+
+    IPage<User> ipageSelect2(IPage<User> page, @Param("param") User param);
 }

+ 8 - 0
mybatis-plus-sample-pagination/src/main/resources/mapper/UserMapper.xml

@@ -65,4 +65,12 @@
             </if>
         </where>
     </select>
+    <select id="ipageSelect2" resultType="com.baomidou.mybatisplus.samples.pagination.entity.User">
+        select * from sys_user
+        <where>
+            <if test="param.name!=null and param.name!=''">
+                name like #{param.name}
+            </if>
+        </where>
+    </select>
 </mapper>

+ 9 - 0
mybatis-plus-sample-pagination/src/test/java/com/baomidou/mybatisplus/samples/pagination/PaginationTest.java

@@ -153,6 +153,15 @@ class PaginationTest {
     }
 
     @Test
+    public void iPageTest2(){
+        Page<User> page = new Page<>(1,3,false);
+        User param =new User();
+        param.setName("1");
+        IPage<User> userIPage = mapper.ipageSelect2(page, param);
+        System.out.println(userIPage);
+    }
+
+    @Test
     void rowBoundsTest() {
         RowBounds rowBounds = new RowBounds(0, 5);
         List<User> list = mapper.rowBoundList(rowBounds, Maps.newHashMap("name", "%"));