mybatis中分页有3种方式来实现,通过sql语句(两种传参方式)来实现,通过mybatis 的 Rowbounds 来实现。
通过(自定义类型)传参 来实现分页:
映射文件:
1
2
3
|
< select id= "findListBypage" parameterType= "cn.wh.util.PageUtil" resultType= "Role" > select * from t_role limit #{ index },#{ size } </ select > |
测试代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
|
/** * 通过自定义类型来传参 实现分页功能 需要新建一个类型 */ @Test public void testPage1(){ PageUtil pu = new PageUtil(); pu.setIndex( 3 ); pu.setSize( 3 ); List<Role> list = session.selectList( "cn.wh.mapper.RoleMapper.findListBypage" , pu); for (Role r:list){ System.out.println(r.getName()); } } |
通过map传参实现:
映射文件:
1
2
3
|
<select id= "findListBypage" parameterType= "map " resultType= "Role" > select * from t_role limit #{index},#{size} </select> |
测试代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
|
/** * 可以通过map来传参 这样可以不用新建新的类型 */ @Test public void testPage2(){ Map<String,Integer> map = new HashMap<String,Integer>(); map.put( "index" , 0 ); map.put( "size" , 3 ); List<Role> list = session.selectList( "cn.wh.mapper.RoleMapper.findListBypage" , map); for (Role r:list){ System.out.println(r.getName()); } } |
通过RowBounds来实现分页:
映射文件:
1
2
3
|
<select id= "findAll" resultType= "Role" > select * from t_role </select> |
测试代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
|
/** * 使用rowBounds来实现分页 */ @Test public void testPage3(){ //第一个参数 是index,开始下标 //第二个参数 是size,每页显示记录数 RowBounds bounds = new RowBounds( 3 , 3 ); List<Role> list = session.selectList( "cn.wh.mapper.RoleMapper.findAll" , null ,bounds); for (Role r:list){ System.out.println(r.getName()); } } |
注意:通常情况下使用 Map 传参来实现分页
模糊查询
映射文件:
1
2
3
|
<select id= "selectLike" parameterType= "string" resultType= "Role" > select *from t_role where name like #{name} </select> |
测试代码:
1
2
3
4
5
6
7
8
9
10
|
/** * 模糊查询 */ @Test public void testLike1(){ List<Role> list = session.selectList( "cn.wh.mapper.RoleMapper.selectLike" , "%会员" ); for (Role r:list){ System.out.println(r.getName()); } } |
第二种方式:
1
2
3
|
< select id = "selectLike1" parameterType = "string" resultType = "Role" > select *from t_role where name like concat(#{name},'%'); </ select > |
测试代码:
1
2
3
4
5
6
7
8
9
10
|
/** * 模糊查询 */ @Test public void testLike2(){ List<Role> list = session.selectList( "cn.wh.mapper.RoleMapper.selectLike1" , "黄" ); for (Role r:list){ System.out.println(r.getName()); } } |
注意:通常使用第二种方式实现模糊查询
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。