mybatis分页及模糊查询功能实现
mybatis中分页有3种方式来实现,通过sql语句(两种传参方式)来实现,通过mybatis的Rowbounds来实现。
通过(自定义类型)传参来实现分页:
映射文件:
select*fromt_rolelimit#{index},#{size}
测试代码:
/** *通过自定义类型来传参实现分页功能需要新建一个类型 */ @Test publicvoidtestPage1(){ PageUtilpu=newPageUtil(); pu.setIndex(3); pu.setSize(3); Listlist=session.selectList("cn.wh.mapper.RoleMapper.findListBypage",pu); for(Roler:list){ System.out.println(r.getName()); } }
通过map传参实现:
映射文件:
select*fromt_rolelimit#{index},#{size}
测试代码:
/** *可以通过map来传参这样可以不用新建新的类型 */ @Test publicvoidtestPage2(){ Mapmap=newHashMap (); map.put("index",0); map.put("size",3); List list=session.selectList("cn.wh.mapper.RoleMapper.findListBypage",map); for(Roler:list){ System.out.println(r.getName()); } }
通过RowBounds来实现分页:
映射文件:
select*fromt_role
测试代码:
/** *使用rowBounds来实现分页 */ @Test publicvoidtestPage3(){ //第一个参数是index,开始下标 //第二个参数是size,每页显示记录数 RowBoundsbounds=newRowBounds(3,3); Listlist=session.selectList("cn.wh.mapper.RoleMapper.findAll",null,bounds); for(Roler:list){ System.out.println(r.getName()); } }
注意:通常情况下使用Map传参来实现分页
模糊查询
映射文件:
select*fromt_rolewherenamelike#{name}
测试代码:
/** *模糊查询 */ @Test publicvoidtestLike1(){ Listlist=session.selectList("cn.wh.mapper.RoleMapper.selectLike","%会员"); for(Roler:list){ System.out.println(r.getName()); } }
第二种方式:
select*fromt_rolewherenamelikeconcat(#{name},'%');
测试代码:
/** *模糊查询 */ @Test publicvoidtestLike2(){ Listlist=session.selectList("cn.wh.mapper.RoleMapper.selectLike1","黄"); for(Roler:list){ System.out.println(r.getName()); } }
注意:通常使用第二种方式实现模糊查询
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。