mybatis逆向工程如何分页的一种方法

前言:在使用逆向工程时,发现并没有自动生成相关的分页操作,经过查询之后发现需要自己实现。

实现如下

第一步、在生成的Example类中添加两个属性,offset表示起始位置,limit表示查询条数,并生成对应的get 和set方法

   
    //加入 offset 起始位置  和 limit 查询页数  用来分页
    protected int offset;
    
    protected int limit;
    /*
     * 生成 offset 和 limit 的set get 方法
     */
	public int getOffset() {
		return offset;
	}

	public void setOffset(int offset) {
		this.offset = offset;
	}

	public int getLimit() {
		return limit;
	}

	public void setLimit(int limit) {
		this.limit = limit;
	}
    

第二步、在对应的mapper.xml文件中,找到selectByExample方法,在方法中添加如下的代码


  <if test="offset != null and limit != null">
    limit ${offset},${limit}
    </if>

例子如下:

  <select id="selectByExample" resultMap="BaseResultMap" parameterType="com.zhy.eduPlatform.pojo.AdminExample" >
    select
    <if test="distinct" >
      distinct
    </if>
    <include refid="Base_Column_List" />
    from admin
    <if test="_parameter != null" >
      <include refid="Example_Where_Clause" />
    </if>
    <if test="orderByClause != null" >
      order by ${orderByClause}
    </if>
    <if test="offset != null and limit != null">
    limit ${offset},${limit}
    </if>
  </select>
第三步、使用
	/* 查询普通管理员列表,传入起始位置和查询数目
	 * (non-Javadoc)
	 * @see com.zhy.eduPlatform.service.AdminService#queryAdminList(int, int)
	 */
	public List<Admin> queryAdminList(Integer  offset, Integer  limit,String adminName, Integer  adminId) {
		// TODO Auto-generated method stub
		AdminExample ae = new AdminExample();
		Criteria criteria  = ae.createCriteria();
		if(!"".equals(adminName) && adminName != null){
			criteria.andAdminNameLike("%" + adminName + "%");
		}
		if(adminId != Dic.NO_INPUT_ID){
			criteria.andAdminIdEqualTo(adminId);
		}
		ae.setOffset(offset);
		ae.setLimit(limit);
		List<Admin> adminList  =  am.selectByExample(ae);
		return adminList;
	}
在使用时传入offset和limit的值,返回的list便是limit条数的数据



阅读更多

没有更多推荐了,返回首页