springMVC集成mybatis-paginator实现分页
mybatis-paginator下载地址:https://github.com/miemiedev/mybatis-paginator
1、引入maven依赖
<dependency>
<groupId>com.github.miemiedev</groupId>
<artifactId>mybatis-paginator</artifactId>
<version>1.2.17</version>
</dependency>
2、spring配置文件添加分页插件:
<!-- spring和MyBatis完美整合,不需要mybatis的配置映射文件 -->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="configLocation" value="classpath:mybatis-setting.xml"/>
<property name="mapperLocations" value="classpath*:com/tianwen/nlp/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"/>
</bean>
</list>
</property>
</bean>
<!-- DAO接口所在包名,Spring会自动查找其下的类 -->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="com.tianwen.nlp.dao" />
<property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"></property>
</bean>
3、下面添加一分页插件调用事例
3.1、controller层方法
//分页查询回访记录列表 @RequestMapping("/contactList") public String contactList(Model model, @RequestParam(value="customerId", required=false)String customerId, @RequestParam(value="remark", required=false)String remark, @RequestParam(value="page", defaultValue="1")Integer curPage, @RequestParam(value="pageSize", defaultValue="20")Integer pageSize) { Map<String, Object> whereMap = new HashMap<String, Object>(); whereMap.put("customerId", customerId); whereMap.put("remark", remark); PageBounds pb = new PageBounds(curPage, pageSize, Order.formString("id.desc")); PageList<ContactRecord> pageList= contactService.queryPageContactRecord(whereMap, pb); Page page = new Page(curPage, pageList.getPaginator().getTotalCount(), pageSize); //根据当前页码、总记录数、每页记录数构造page对象 model.addAttribute("data", pageList); model.addAttribute("page", page); return "contact/contactList"; }
3.2、service层方法
@Override public PageList<ContactRecord> queryPageContactRecord( Map<String, Object> whereMap, PageBounds pb) { return recordMappert.selectPageList(whereMap, pb); }
3.3、dao层接口方法及其xmp配置
<sql id="whereCondition">
<if test="customerId != null and !"".equals(customerId.trim())">
and customer_id like concat('%',trim(#{customerId}),'%')
</if>
<if test="remark != null and !"".equals(remark.trim())">
and REMARK like concat('%',trim(#{remark}),'%')
</if>
</sql>
<!-- 分页查询回访记录 -->
<select id="selectPageList" parameterType="map" resultMap="BaseResultMap">
select * from contact_record
<where>
<include refid="whereCondition"></include>
</where>
<if test="groupBy != null and !"".equals(groupBy.trim())">
group by ${groupBy}
</if>
</select>
public interface ContactRecordMapper { PageList<ContactRecord> selectPageList(Map<String, Object> whereMap, PageBounds pb); }

浙公网安备 33010602011771号