public class Page {
private int page = 1; //初始页
private int rows = 10; //一页多少行数据
private String q;// 要查询的 关键字
private String order = "asc";// 是'asc'或'desc'
protected String sort = "d.id";// 那个字段进行排序 public int getBegin() {
return (page - 1) * rows;
} public int getEnd() {
return rows;
}
// 上面4个属性给mapper使用,limit,order里面使用 public int getPage() {
return page;
} public void setPage(int page) {
this.page = page;
} public int getRows() {
return rows;
} public void setRows(int rows) {
this.rows = rows;
} public String getQ() {
return q;
} public void setQ(String q) {
this.q = q;
} public String getOrder() {
return order;
} public void setOrder(String order) {
this.order = order;
} public String getSort() {
return sort;
} public void setSort(String sort) {
this.sort = sort;
}
}

定义一个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;
}
}

分页简单的封装SSM+easyUi的更多相关文章

  1. 对bootstrap modal的简单扩展封装

    对bootstrap modal的简单扩展封装 参考自:http://www.muzilei.com/archives/677   注:原文不支持bootstrap新版本,并且居中等存在问题 此段时间 ...

  2. android中RecycleView分页原生代码封装,无任何第三方代

    概述 RecycleView分页加载封装,简单方便,功能齐全 详细 代码下载:http://www.demodashi.com/demo/13283.html 一.场景: 在项目开发中经常使用到列表集 ...

  3. [分享] 史上最简单的封装教程,五分钟学会封装系统(以封装Windows 7为例)

    [分享] 史上最简单的封装教程,五分钟学会封装系统(以封装Windows 7为例) 踏雁寻花 发表于 2015-8-23 23:31:28 https://www.itsk.com/thread-35 ...

  4. 一个用python简单的封装了aria2的jsonrpc中adduri的脚本

    aria2是一个十分牛逼的下载神器,有时候项目需要一个很牛逼的下载中间件的话,aria2是一个不错的选择.其中支持jsonrpc和websocket的特性尤其诱人.但是python用起来还是有点不爽, ...

  5. Django分页类的封装

    Django分页类的封装 Django ORM  封装 之前有提到(Django分页的实现)会多次用到分页,将分页功能封装起来能极大提高效率. 其实不是很难,就是将之前实现的代码全都放到类中,将需要用 ...

  6. 最新 AFNetworking 3.0 简单实用封装

    AFNetworking 3.0 的到来使我们开发者又方便了许多,话不多说,直接上代码. 1.首先 引入框架AFNetworking框架 GitHub下载地址:https://github.com/A ...

  7. React+Echarts简单的封装套路

    今天我们来介绍一下React中,对Echarts的一个简单的封装. 首先在我们的React项目中,想使用Echart包,首先需要先安装它,安装代码如下,任选一个就可以 cnpm install ech ...

  8. easyUI中treegrid组件构造树形表格(简单数据类型)+ssm后台

    这几天做的项目要求用树形表格的形式展示一部分数据,于是就想到了使用easyUI的treegrid组件,但几经翻查各种资料,发现数据类型大多采取标准数据类型,即包含children元素的数据类型,小编查 ...

  9. 作为新手在学习SSM+Easyui过程中遇到一系列问题

    对于初学SSM来说,如果不熟悉SSM中SpringMVC对数据处理,会造成很大的困扰, SSM中对前台页面放在WEB-INF下,对于读取外部信息,例如导入easyui的js文件.以及不能直接进行跳转. ...

随机推荐

  1. libev事件库使用笔记

    源码下载地址:http://dist.schmorp.de/libev/ libev是一个高性能的事件循环库,比libevent库的性能要好. 安装: tar -zxf libev-4.15.tar. ...

  2. aos.js超赞页面滚动元素动画jQuery动画库

    插件描述:aos.js 是一款效果超赞的页面滚动元素动画jQuery动画库插件.该动画库可以在页面滚动时提供28种不同的元素动画效果,以及多种easing效果.在页面往回滚动时,元素会恢复到原来的状态 ...

  3. URL传中文参数导致乱码的解决方案之encodeURI

    通过URL传中文参数时,在服务端后台获取到的值往往会出现乱码问题,解决方案有很多种,本文主要介绍如何通过encodeURI来解决中文乱码问题: first:前端传递参数的时候需要对中文参数进行两次en ...

  4. git的使用及常用命令(二)

    一,把文件放在版本库中 执行  git add XXX文件名 在执行 git commit -m ‘提交注释' 查看状态 git status 如果没有改变文件,nothing to comment ...

  5. 0.0 ABP官方文档翻译目录

    一直想学习ABP,但囿于工作比较忙,没有合适的契机,当然最重要的还是自己懒.不知不觉从毕业到参加工作七年了,没留下点儿什么,总感觉很遗憾,所以今天终于卯足劲鼓起勇气开始写博客.有些事能做的很好,但要跟 ...

  6. Web API 之SelfHost与OwinSelfHots加载外部程序

       下面就一些web api的一些基础内容进行阐述,然后就web api宿主承载中的实际业务问题进行解决 HttpController      HttpController的激活是由处于消息处理管 ...

  7. JS中字符串与数组的一些常用方法

    真是恨透了这些类似于substring substr slice 要么长得像,要么就功能相近的方法... 1⃣️string 1.substring(start开始位置的索引,end结束位置索引) 截 ...

  8. 记一些让footer始终位于网页底部的方法

    上次说把网页的头部和尾部分离出来作为一个单独的文件,所有网页共用,这样比较方便修改,然而,,,我发现某些方法里尾部会紧跟在头部后面,把内容挤在下面..而且有的页面内容少的话不能把尾部挤到最下面,所以, ...

  9. struts2标签库----控制标签详解

         前面几篇文章我们介绍了有关struts2的基本内容,简单理解了整个框架的运作流程.从本篇开始我们逐渐了解和使用struts2为我们提供的标签库技术,使用这些标签可以大大降低我们表现层的开发难 ...

  10. Visual Studio 2013 IIS Express使用域名调试mvc程序

    1.编辑applicationhost.config文件 启动vs2013,在右下角IIS Express图标中右击,显示如图,点击框中菜单. 找到你的启动项,点击1,然后点击2,这是应该会有编辑器打 ...