MyBatis中如何实现一个分页功能呢?

Java-框架王 MyBatis 发布时间:2021-07-21 09:44:23 阅读数:16761 1
分页可以毫不夸张的说:“是所有应用程序都必须拥有的操作模式”,那么MyBatis中如何实现一个数据库的分页取数据的功能呢?
下文将一一道来,如下所示:
实现思路:
    通过UserInfoMapper.xml中定义相应的sql脚本,
实现数据分页操作

例: UserInfoMapper中定义相应的方法

/**
*
* @param userInfo
* @param currentPageNo 起始位置
* @param pageSize      页面容量
* @return
*/
public list<UserInfo> selectUserInfo(@Param("userInfo") UserInfo userInfo, @Param("from") Integer currentPageNo,
        @Param("pageSize") Integer pageSize);

UserInfoMapper.xml 中增加 limit 关键字,
SQL 映射代码

<select id="selectUserInfo" resultType="com.java265.po.UserInfo">
    SELECT id,name,notes
    FROM UserInfo
    <trim prefix="where" prefixOverrides="and">
        <if test="userInfo.name != null and userInfo.name !=''">
            AND name LIKE CONCAT ('%',#{site.name},'%')
        </if>
        <if test="userInfo.notes!= null and userInfo.notes !=''">
            AND notes LIKE CONCAT ('%',#{userInfo.notes},'%')
        </if>
        ORDER BY id limit #{from},#{pageSize}
    </trim>
</select>

测试类

public static void main(String[] args) throws IOException {
    // 读取配置文件mybatis-config.xml
    InputStream config = Resources.getResourceAsStream("mybatis-config.xml");
    // 根据配置文件构建
    SqlSessionFactory ssf = new SqlSessionFactoryBuilder().build(config);
    // 通过SqlSessionFactory创建SqlSession
    SqlSession ss = ssf.openSession();
    UserInfo userInfo = new UserInfo();
 
    userInfo.setNotes("喜喜");
    Integer pageSize = 3;
    Integer currentPageNo = 0;
    List<UserInfo> userList = new ArrayList<UserInfo>();
    userList = ss.getMapper(UserInfoMapper.class).selectUserInfo(userInfo, currentPageNo, pageSize);
    for (UserInfo t : userList) {
        System.out.println(t);
    }
}

运行结果---
DEBUG [main] - ==> Preparing: SELECT id,name,notes FROM UserInfo where notes like concat ('%',?,'%') ORDER BY id limit ?,?
DEBUG [main] - ==> Parameters: 喜喜(String), 0(Integer), 3(Integer)
.....
版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

本文链接: https://www.Java265.com/JavaFramework/MyBatis/202107/554.html

最近发表

热门文章

好文推荐

Java265.com

https://www.java265.com

站长统计|粤ICP备14097017号-3

Powered By Java265.com信息维护小组

使用手机扫描二维码

关注我们看更多资讯

java爱好者