mybatisのページとあいまいな検索機能が実現されます。


mybatisはページ別に3つの方式で実現され、sql文(2つの伝参方式)で実現され、mybatisのRowboundsによって実現されます。
改ページは、(カスタムタイプ)を参照して実行します。
マップファイル:

<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());
    }
  }
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());
    }
  }


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参を使用して改ページを実現します。
あいまい検索
マップファイル:

<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());
    }
  }
第二の方法:

<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());
    }
  }
注意:通常は第二の方法であいまいなクエリを実現します。
以上が本文の全部です。皆さんの勉強に役に立つように、私たちを応援してください。