【Mybatis Plus-04】XML自定义分页

UserMapper.java

public interface UserMapper extends BaseMapper<User> {
	//方式一
    IPage<User> selectMyPage(IPage<User> page, @Param(Constants.WRAPPER) Wrapper<User> queryWrapper);
    //方式二
	List<User> selectMyPage2(@Param("pageNum")int pageNum, @Param("pageSize")int PageSize);
}

UserMapper.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.cy.springboot.mapper.UserMapper">
    <select id="selectMyPage" resultType="com.cy.springboot.entity.User">
        select * from boot_user
    </select>

	<select id="selectMyPage2"  resultType="com.cy.springboot.entity.User">
       select * from boot_user limit #{pageNum},#{pageSize}
    </select>
</mapper>

测试

@SpringBootTest
@RunWith(SpringRunner.class)
public class MapperTests {
    @Test
    public void page(){
        Page<User> page = new Page<>(1,1);
        QueryWrapper<User> userQueryWrapper = new QueryWrapper<>();
        userQueryWrapper.gt("age",5);
        userMapper.selectMyPage(page,userQueryWrapper);
    }
    
    @Test
    public void page2(){
        int pageNum=1;
        int pageSize=2;
        List<User> users = userMapper.selectMyPage2(pageNum, pageSize);
        userMapper.selectMyPage2(pageNum,pageSize);
    }
}

打印sql
page()
在这里插入图片描述page2()
在这里插入图片描述
如果要对字段进行比较,方式一更合适

Mybatis-Plus 中,我们可以通过自定义 XML 文件来实现复杂的 SQL 操作,包括分页查询。下面是一个示例,演示如何使用自定义 XML 文件实现 Mybatis-Plus 分页查询: ```xml <!-- Mybatis 自定义 XML 文件 --> <mapper namespace="com.example.mapper.UserMapper"> <select id="selectUserList" resultType="com.example.entity.User"> select * from user <where> <if test="name != null and name != ''"> and name like concat('%', #{name}, '%') </if> </where> </select> <!-- 分页查询 --> <select id="selectUserPage" resultMap="userResultMap"> select * from user <where> <if test="name != null and name != ''"> and name like concat('%', #{name}, '%') </if> </where> <if test="page != null"> limit #{page.current}, #{page.size} </if> </select> </mapper> ``` 其中,`selectUserList` 是一个普通的查询语句,`selectUserPage` 则是一个带有分页参数的查询语句。在分页查询中,我们需要使用 `limit` 关键字来控制返回数据的数量,同时,我们也需要将分页信息传递给 SQL 语句。这里,我们通过 Mybatis 的参数处理机制来实现,在 XML 文件中使用 `${paramName}` 取出参数值。 接下来,我们需要在 Java 代码中调用该查询语句,从而实现分页查询。示例代码如下: ```java @Service public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements UserService { @Override public IPage<User> getUserPage(Page<User> page, String name) { return baseMapper.selectUserPage(page, name); } } ``` 在 Service 实现类中,我们通过 `baseMapper` 来调用自定义 SQL 语句,其中 `selectUserPage` 方法返回一个 `IPage<User>` 对象,表示查询结果。最后,我们将该对象返回给控制器,完成分页查询。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小蜜蜂127

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值