mybatis分页实现(非插件方式)

前面一篇文章介绍了通过拦截器发方式实现mybatis分页(应该是比较常用的一种方式,网上搜索结果较多),这里介绍另一种方式:通过代码封装,不改变mybatis框架的任何东西(个人推荐使用该方式),这个代码是我老大写的,个人觉得很好,原理也很简单,修改也很容易,所以贴出来,供大家参考。

package com.dnkx.base.service;

import com.dnkx.base.persistance.BaseMapper;
import com.dnkx.base.utils.PaginationSupport;

import java.io.Serializable;
import java.util.Date;
import java.util.List;
import java.util.Map;

/**
 * Created by baowp on 2015/8/18.
 */
public interface BaseService<T extends BaseMapper<E>,E extends Serializable> {
    
    E get(Long id);

    int save(E e);

    int update(E e);

    int delete(Long id);

    /**
     * 按条件查询列表
     * @param params
     * @return
     */
    List<E> list(Map params);

    /**
     * 按条件查询记录数
     * @param params
     * @return
     */
    int count(Map params);

    /**
     * 按条件分布查询列表
     * @param params
     * @return
     */
    PaginationSupport<E> pageList(Map params);

    /**
     * 按条件分布查询列表
     * @param params
     * @return
     */
    PaginationSupport<E> pageList(E params);
}

上面这个是基础的service类,需要分页的业务service都继承于这个基础的service

下面的实现类和Mapper类同理:

service实现类,里面包含了分页的实现,原理很简单的

package com.dnkx.base.service.impl;

import com.dnkx.base.persistance.BaseMapper;
import com.dnkx.base.service.BaseService;
import com.dnkx.base.utils.PaginationSupport;
import com.dnkx.common.utils.BeanUtil;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;

import java.io.Serializable;
import java.util.Date;
import java.util.List;
import java.util.Map;

/**
 * Created by baowp on 2015/8/18.
 */
public class BaseServiceImpl<T extends BaseMapper<E>, E extends Serializable> implements BaseService<T, E> {

    protected final Logger logger = LoggerFactory.getLogger(getClass());

    @Autowired
    protected T mapper;

    @Override
    public E get(Long id) {
        return mapper.get(id);
    }

    @Override
    public int save(E e) {
        return mapper.save(e);
    }

    @Override
    public int update(E e) {
        return mapper.update(e);
    }

    @Overr
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值