6.基于SpringBoot3+MybatisPlus实现分页查询

1. 新建UserPlusMapper.java
/**
 * 用户加强版Mapper
 */
@Repository
public interface UserPlusMapper extends BaseMapper<UserDto> {
    
    

    /**
     * 直接写SQL即可,即使关联查询的结果也会映射到DTO中
     */
    String querySql = "SELECT " +
            "               u.username, u.name " +
            "          FROM " +
            "               user AS u";
    String wrapperSql = "SELECT * FROM ( " + querySql + " ) AS q ${ew.customSqlSegment}";

    @Select(wrapperSql)
    Page<UserDto> page(IPage page, @Param("ew") Wrapper queryWrapper);
}
2. 测试验证
/**
 * @author shenjian
 * @since 2023/10/12
 */
@RunWith(SpringRunner.class)
@SpringBootTest(classes = CloudApplication.class)
public class UserTest {
    
    

    @Autowired
    private UserPlusMapper userPlusMapper;

    /**
     * 分页查询
     */
    @Test
    public void testPage() {
    
    
        IPage<UserDto> page = new Page<>(1, 10);
        QueryWrapper<User> queryWrapper = new QueryWrapper<>();
        queryWrapper.eq("username", "sfxs");
        Page<UserDto> resultPage = userPlusMapper.page(page, queryWrapper);
        Assert.assertNotNull(resultPage.getRecords());
        Assert.assertEquals(1, resultPage.getTotal());
    }
}

欢迎关注公众号算法小生

猜你喜欢

转载自blog.csdn.net/SJshenjian/article/details/133815988