MyBatis中如何实现一个分页功能呢?
分页可以毫不夸张的说:“是所有应用程序都必须拥有的操作模式”,那么MyBatis中如何实现一个数据库的分页取数据的功能呢?
下文将一一道来,如下所示:
例: UserInfoMapper中定义相应的方法
SQL 映射代码
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)
.....
下文将一一道来,如下所示:
实现思路: 通过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)
.....
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。