mybatis 分页
mybatis分页
1. 物理分页
查询 从offset条起,后面的共rows条记录(offset从0开始)
SELECT * FROM table1 LIMIT offset,rows
2. 逻辑分页
RowBounds分页:一次性查出很多记录,然后再这些数据中进行分页查询
RowBounds查询数据:
jdbc驱动中有 Fetch Size 参数,表示每次最多从数据库中查询多少条数据,如果超过了这个数,实际上jdbc自动去再执行了查询。
Mybatis实际上通过多次查询查询出所有数据,然后我们在RowBounds上进行分页查询
如果数据很多,使用RowBounds查询所有数据会有内存溢出风险。所以RowBounds适合数据量不大的查询。
3. 使用RowBounds
原来的接口:
public List<User> findUserByName(String name);
对应的sql--mapper:
<mapper namespace="com.xt.dao.UserDao"> <select id="findUserByName" resultType="com.xt.domain.User"> select * from user where userName like concat(‘%‘,#{name},‘%‘) </select> </mapper>
使用:
UserDao dao = sqlSession.getMapper(UserDao.class); List<User> list = dao.findUserByName("name1");
使用RowBounds的接口:
public List<User> findUserByName(String name,RowBounds rowbounds);
sql--mapper不变
使用:
UserDao dao = sqlSession.getMapper(UserDao.class); List<User> list = dao.findUserByName("name1",new RowBounds(0,5)); //查询 0,1,2,3,4
相关推荐
xiuyangsong 2020-11-16
Nishinoshou 2020-11-09
jimgreatly 2020-09-01
dongxurr 2020-08-18
Dullonjiang 2020-08-15
Dullonjiang 2020-08-11
Dullonjiang 2020-08-09
dongxurr 2020-08-08
yunzhonmghe 2020-08-07
jimgreatly 2020-08-03
Dullonjiang 2020-07-30
jimgreatly 2020-07-27
liqiancao 2020-07-26
xiuyangsong 2020-07-26
dongxurr 2020-07-26
mcvsyy 2020-07-26
helloxusir 2020-07-25
牧场SZShepherd 2020-07-20