Mybatis实现分页
- 数据库中的Users表数据
Sql语句映射
<!-- 分页查询 --> <select id="selectPage" parameterType="Map" resultType="com.master.User"> select*from Users order by u_id offset #{pageIndex} rows fetch next #{pageSize} rows only </select> |
这里使用的是SQL Server 如果 mysql只需要更改sql语句
Select*from 表名 inmit #{pageIndex},#{pageSize} |
pageIndex 开始下标 = (当前页-1)*一页显示几条数据
业务类
public List<User> getSelectPage(int currentPage,int pageSize) throws IOException{ SqlSession ss=MybatisUit.getSqlSession(); //为SQL语句创建传入参数,parameterType Map< String, Integer> map=new HashMap<String,Integer>(); //pageIndex 开始下标 = (currentPage当前页-1)*一页显示的数据量 map.put("pageIndex", (currentPage-1)*pageSize); //pageSize 一页显示的数据量即 一页显示多少条数据 map.put("pageSize", pageSize); List<User> list=ss.selectList("com.master.UserMapper.selectPage", map); return list; } |
测试类
public static void main(String[] args) throws IOException { UserDao ud = new UserDao(); User user = new User();
for (int i = 1; i < 4; i++) { List<User> li = ud.getSelectPage(i, 3); System.out.println("第" + i + "页"); for (User u : li) { System.out.println(u); } } } |
结果: