Mybatis物理分页插件
2017-05-10 15:14
330 查看
使用方式:http://my.oschina.net/miemiedev/blog/135516
项目git地址:https://github.com/miemiedev/mybatis-paginator
miemiedev还提供了一系列针对mybatis的插件,项目首页:https://github.com/miemiedev
简单示例:
在Maven中加入依赖:
Mybatis配置文件添加分页插件:
springmvc+mybatis的时候需要在数据源里面加载插件
创建一个查询,内容可以是任何Mybatis表达式,包括foreach和if等:
mapper中添加接口:
Service中添加实现 :
调用方式(分页加多列排序):
//获得分页结果
PageList类是继承于ArrayList的,这样Dao中就不用为了专门分页再多写一个方法。
使用PageBounds这个对象来控制结果的输出,常用的使用方式一般都可以通过构造函数来配置。
项目git地址:https://github.com/miemiedev/mybatis-paginator
miemiedev还提供了一系列针对mybatis的插件,项目首页:https://github.com/miemiedev
简单示例:
在Maven中加入依赖:
<dependencies> <dependency> <groupId>com.github.miemiedev</groupId> <artifactId>mybatis-paginator</artifactId> <version>1.2.17</version> </dependency> </dependencies>
Mybatis配置文件添加分页插件:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE configuration PUBLIC "-//ibatis.apache.org//DTD Config 3.0//EN" "http://ibatis.apache.org/dtd/ibatis-3-config.dtd"> <configuration> <plugins> <plugin interceptor="com.github.miemiedev.mybatis.paginator.OffsetLimitInterceptor"> <property name="dialectClass" value="com.github.miemiedev.mybatis.paginator.dialect.OracleDialect"/> </plugin> </plugins> </configuration>
springmvc+mybatis的时候需要在数据源里面加载插件
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="dataSource" /> <property name="mapperLocations" value="classpath:com/zsai/foundation/mapping/*.xml"></property> <property name="plugins"> <list> <bean class="com.github.miemiedev.mybatis.paginator.OffsetLimitInterceptor"> <property name="dialectClass" value="com.github.miemiedev.mybatis.paginator.dialect.MySQLDialect"></property> </bean> </property> </bean>
创建一个查询,内容可以是任何Mybatis表达式,包括foreach和if等:
<select id="findList" resultMap="ResultMap"> select <include refid="Base_Column_List" /> from user <where> <if test="id != null"> and id = #{id,jdbcType=BIGINT} </if> <if test="addTime != null"> and addTime = #{addTime,jdbcType=TIMESTAMP} </if> <if test="QQ != null"> and QQ = #{QQ,jdbcType=VARCHAR} </if> <if test="address != null"> and address = #{address,jdbcType=VARCHAR} </if> <if test="email != null"> and email = #{email,jdbcType=VARCHAR} </if> <if test="mobile != null"> and mobile = #{mobile,jdbcType=VARCHAR} </if> <if test="password != null"> and password = #{password,jdbcType=VARCHAR} </if> <if test="sex != null"> and sex = #{sex,jdbcType=INTEGER} </if> <if test="userName != null"> and userName = #{userName,jdbcType=VARCHAR} </if> </where> </select>
mapper中添加接口:
List<User> findList(Map<String, Object> params, PageBounds pageBounds);
Service中添加实现 :
public List<User> findList(Map<String, Object> params, PageBounds pageBounds) { List<User> list = new ArrayList<User>(); try { list = this.UserMapper.findList(params, pageBounds); } catch (Exception e) { StackTraceElement[] traces = e.getStackTrace(); System.err.println("报错啦! => " + traces[0]); } return list; }
调用方式(分页加多列排序):
int page = 1; //页号 int pageSize = 20; //每页数据条数 String sortString = "addTime.asc,id.desc";//如果你想排序的话逗号分隔可以排序多列 PageBounds pageBounds = new PageBounds(page, pageSize , Order.formString(sortString)); Map<String, Object> params = new HashMap<String, Object>(); params.put("sex", Integer.valueOf(1)); List list = findList(params,pageBounds);
//获得分页结果
PageList pageList = (PageList)list; System.out.println(JSON.toJSONString(pageList)); System.out.println(JSON.toJSONString(pageList.getPaginator()));
PageList类是继承于ArrayList的,这样Dao中就不用为了专门分页再多写一个方法。
使用PageBounds这个对象来控制结果的输出,常用的使用方式一般都可以通过构造函数来配置。
new PageBounds();//默认构造函数不提供分页,返回ArrayList new PageBounds(int limit);//取TOPN操作,返回ArrayList new PageBounds(Order... order);//只排序不分页,返回ArrayList new PageBounds(int page, int limit);//默认分页,返回PageList new PageBounds(int page, int limit, Order... order);//分页加排序,返回PageList new PageBounds(int page, int limit, List<Order> orders, boolean containsTotalCount);//使用containsTotalCount来决定查不查询totalCount,即返回ArrayList还是PageList
相关文章推荐
- Mybatis物理分页插件PageHelper 5.0
- Mybatis物理分页插件
- Mybatis 数据库物理分页插件 PageHelper
- Mybatis 数据库物理分页插件 PageHelper
- Mybatis 数据库物理分页插件 PageHelper
- 关键字:Mybatis物理分页插件(目前mybatis下最好的物理分页)
- Mybatis 数据库物理分页插件 PageHelper
- Mybatis 数据库物理分页插件 PageHelper
- Mybatis 数据库物理分页插件 PageHelper
- 2017.12.14 Mybatis物理分页插件PageHelper的使用(一)
- Mybatis 数据库物理分页插件 PageHelper
- Mybatis 数据库物理分页插件 PageHelper 前端实现
- Mybatis 数据库物理分页插件 PageHelper
- 2017.12.25 Mybatis物理分页插件PageHelper的使用(二)
- Mybatis物理分页插件报错: duplicate column ‘xxx'的原因分析与解决
- Mybatis物理分页插件(目前mybatis下最好的物理分页)
- 2017.12.25 Mybatis物理分页插件PageHelper的使用(二)
- 基于Springmvc+Mybatis+Spring+Freemarker的物理分页插件(超级简单)
- 2017.12.14 Mybatis物理分页插件PageHelper的使用(一)
- Mybatis 数据库物理分页插件 PageHelper