分页简单的封装SSM+easyUi

 1 public class Page {
 2     private int page = 1;   //初始页
 3     private int rows = 10; //一页多少行数据
 4     private String q;// 要查询的 关键字    
 5     private String order = "asc";// 是'asc'或'desc'
 6     protected String sort = "d.id";// 那个字段进行排序
 7 
 8     public int getBegin() {
 9         return (page - 1) * rows;
10     }
11 
12     public int getEnd() {
13         return rows;
14     }
15     // 上面4个属性给mapper使用,limit,order里面使用
16 
17     public int getPage() {
18         return page;
19     }
20 
21     public void setPage(int page) {
22         this.page = page;
23     }
24 
25     public int getRows() {
26         return rows;
27     }
28 
29     public void setRows(int rows) {
30         this.rows = rows;
31     }
32 
33     public String getQ() {
34         return q;
35     }
36 
37     public void setQ(String q) {
38         this.q = q;
39     }
40 
41     public String getOrder() {
42         return order;
43     }
44 
45     public void setOrder(String order) {
46         this.order = order;
47     }
48 
49     public String getSort() {
50         return sort;
51     }
52 
53     public void setSort(String sort) {
54         this.sort = sort;
55     }
60 }

定义一个page类,简单的处理一哈,这个应该都看得懂,很简单

这个PageMapper就是Dao接口里面的  定义一个泛型,方便封装,其余的类想用分页直接继承,改一下类型

public interface PageMapper<T> {
    
    Integer findCountByQuery(Query query);  //查询的行数
    
    List<T> findLimitByQuery(Query query);   //模糊查询
}

下面就贴一下xml文件的 代码,就是写的sql 映射这一些,现在开发都用的映射,写xml配置,以前是用的注解,不会的度娘吧

下面

StudentQuery里面的定义就看自己的需求,get、set方法,这个会不  继承上面的pege就好了
<!-- 根据条件查询count -->
    <!-- findCountByQuery 方法名 dao接口的两个 这个是查询的行数  parameterType就是返回 -->
    <select id="findCountByQuery" resultType="int" parameterType="StudentQuery">
        select count(id) from t_student
                <!--用的包含-->
        <include refid="whereSql" />
    </select>

    <!-- 根据条件查询limit -->
    <!--里面的跟上面差不多  只是id要对应方法名哦-->
    <select id="findLimitByQuery" resultType="Student"
        parameterType="StudentQuery">
        select id,name,teacher from
        t_student
<include refid="whereSql" />
      
        limit #{begin},#{end}  
    </select>

    <!-- 公共的查询条件  根据name模糊查询 当然了 支持多个查询,在后面if就行了跟着这个写  -->
    <sql id="whereSql">
        <where>
            <if test="name!=null and name!=''">
                and name like name('%',#{name},'%')
            </if>
        </where>
    </sql>

下面就是service和实现类的 

public interface PageService<T> {

    /**
     * 分页
     * @param query
     * @return
     */
    PageList findByQuery(Query query);
    
    


}
public abstract class BaseServiceImpl<T> implements IBaseService<T> {
    @Autowired
    BaseMapper<T> baseMapper;

    @Override
    public PageList findByQuery(Query query) {
        PageList pageList = new PageList();
        Integer count = baseMapper.findCountByQuery(query);
        if (count == null || count == 0) {
            return pageList;
        }
        List<T> rows = baseMapper.findLimitByQuery(query);
        pageList.setRows(rows);
        pageList.setTotal(count);
        return pageList;
    }
}

好了 最后只需要调用service的方法就搞定了

controller里面直接调用方法返回给前端json数据就好了  

注意一点,

StudentQuery 是个人自己定义的  只需要继承pege类就好了   里面就是模糊查询的参数,  这个
PageList 就可以改变的哈  我是用这个类来表示的  当然 你可以换成二维数组  分页查询的数据默认查询全部 丢到前端的就是pagelist 学会变通一下   前端的就不写了  本人是写后台的  没看懂的可以留言
import java.util.ArrayList;
import java.util.List;

public class PageList {
    private int total;  //多少行
    private List rows = new ArrayList();  //显示的数据存到集合里面

    public int getTotal() {
        return total;
    }

    public void setTotal(int total) {
        this.total = total;
    }

    public List getRows() {
        return rows;
    }

    public void setRows(List rows) {
        this.rows = rows;
    }
    

    @Override
    public String toString() {
        return "PageList [total=" + total + ", rows=" + rows + "]";
    }

}

 

/**
 * controller
 * 
 * @author Administrator
 *
 */
@RequestMapping("/Student")
@Controller
public class Controller {

    @Autowired
    PageService service;

    /**
     * 
     * @param query
     * @return
     */
    @ResponseBody
    @RequestMapping("all")
    public JSONObject selectAll(StudentQuery query) {
        JSONObject jsonObject = new JSONObject();
        jsonObject.put("student", service.findByQuery(query));
        return jsonObject;
    }
}

转载于:https://www.cnblogs.com/gtwhisper/p/6971870.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值