您的位置:首页 > 其它

如何用Mybatis逆向工程实现分页查询

2016-12-19 09:46 375 查看
如何用Mybatis逆向工程实现分页查询

一个很简单的方法,如果要mysql实现分页查询的话,执行下述语句即可

select * from table
limit (offset)5,(limit)10;


其中,第一个参数offset为游标起点,第二个参数limit为一次所取的数据量.这个语句在数据库中极其简单,但由于mybatis的逆向工程将绝大多数的sql语句包装成方法,那么如果要实现分页查询的话,本人看了下mapper.xml的代码,可以如下实现:

打开生成的example.class,在里面的变量中增加offset,limit两个变量,并为其添加set,get方法

protected int offset;
protected int limit;

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 && limit != null">
limit ${offset},${limit}
</if>


完整的代码如下:

<select id="selectByExample" resultMap="BaseResultMap"
parameterType="models.po.OpenInvitationCodeExample">
select
<if test="distinct">
distinct
</if>
<include refid="Base_Column_List" />
from open_invite_code
<if test="_parameter != null">
<include refid="Example_Where_Clause" />
</if>
<if test="orderByClause != null">
order by ${orderByClause}
</if>
<if test="offset != null && limit != null"> limit ${offset},${limit} </if>
</select>


到这步,基本上的配置已完成.

3. 通过java代码实现具体业务逻辑,实现分页

Example example = new Example();
//设置分页属性进行分页查询
example.setOffset(offset);
example.setLimit(limit);
List lists = mapper.selectByExample(example);


上述便是在mybaitis的逆向工程的基础上增加了分页的功能.

本人刚开始实习,也是第一次写技术blog,如果有更好的方法或者不太正确的地方,欢迎指出~
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  mybatis 分页