• mybatis 之 分页及模糊查询


    1. mybatis中分页有3种方式来实现,通过sql语句(两种传参方式)来实现,通过mybatis 的 Rowbounds 来实现。
    2. 通过(自定义类型)传参 来实现分页:

      映射文件:

      <select id="findListBypage" parameterType="cn.wh.util.PageUtil" resultType="Role">
              select * from t_role limit #{index},#{size}
          </select>

      测试代码:

      /**
           * 通过自定义类型来传参 实现分页功能 需要新建一个类型
           */
          @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());
              }
          }
    3. 通过map传参实现:

      映射文件:

      <select id="findListBypage" parameterType="map " resultType="Role">
              select * from t_role limit #{index},#{size}
          </select>

      测试代码:

      /**
           * 可以通过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());
              }
          }
    4. 通过RowBounds来实现分页:

      映射文件:

      <select id="findAll" resultType="Role">
              select * from t_role
          </select>

      测试代码:

      /**
           * 使用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 传参来实现分页

    5. 模糊查询
      映射文件:
      <select id="selectLike" parameterType="string" resultType="Role">
              select *from t_role where name like #{name}
          </select>

      测试代码:

      /**
           * 模糊查询
           */
          @Test
          public void testLike1(){
              List<Role> list = session.selectList("cn.wh.mapper.RoleMapper.selectLike","%会员");
              for(Role r:list){
                  System.out.println(r.getName());
              }
          }
    6. 第二种方式:
      <select id="selectLike1" parameterType="string" resultType="Role">
              select *from t_role where name like concat(#{name},'%');
          </select>

      测试代码:

      /**
           * 模糊查询
           */
          @Test
          public void testLike2(){
              List<Role> list = session.selectList("cn.wh.mapper.RoleMapper.selectLike1","");
              for(Role r:list){
                  System.out.println(r.getName());
              }
          }

      注意:通常使用第二种方式实现模糊查询:

  • 相关阅读:
    一个简单而实用的JQ插件——lazyload.js图片延迟加载插件
    CSS预处理语言——less与sass的使用
    JQuery速成大法
    实现图片的循环滚动——JS的简单应用
    JS基础——循环很重要
    JS基础——入门必备
    做一个常规的banner图——负边距的使用、banner图的拼法
    网页侧边浮动条的实现
    如何做一个导航栏————浮动跟伪类(hover)事件的应用
    基于java代码的springmvc配置
  • 原文地址:https://www.cnblogs.com/forever2h/p/6796095.html
Copyright © 2020-2023  润新知