SpringMVC+MyBatis+EasyUI 实现分页查询

user_list.jsp

<%@ page import="com.ssm.entity.User" %>
<%@ page pageEncoding="UTF-8" import="java.util.List" %>
<html>
<head>
    <%@ include file="meta.jsp" %>

    <meta charset="UTF-8">
    <title>用户列表</title>
    <link rel="stylesheet" type="text/css" href="jquery-easyui-1.4/themes/default/easyui.css">
    <link rel="stylesheet" type="text/css" href="jquery-easyui-1.4/themes/icon.css">
    <script type="text/javascript" src="jquery-easyui-1.4/jquery.min.js"></script>
    <script type="text/javascript" src="jquery-easyui-1.4/jquery.easyui.min.js"></script>

</head>
<body>
    <table id="dataTable"  style="width:400px;height:250px">
        <thead>
        <tr>
            <th data-options="field:‘id‘">ID</th>
            <th data-options="field:‘name‘">姓名</th>
            <th data-options="field:‘age‘">年龄</th>
        </tr>
        </thead>
    </table>
<a href="/ssm">回到首页</a>
</body>
<script>
    $(document).ready(function() {
        page_init();
    });
    function page_init() {

        $("#dataTable").datagrid({
            url: "listUserWithPageForJson", //actionName
            queryParams:{pageNumber:2,pageSize:10},//查询参数
            loadMsg:"正在加载数据...",
            rownumbers:true,//查询结果在表格中显示行号
            fitColumns:true,//列的宽度填满表格,防止下方出现滚动条。
            pageNumber:2,   //初始页码,得在这设置才效果,pagination设置没效果。
            pagination: true//分页控件
            //如果后端返回的json的格式直接是data={total:xx,rows:{xx}},不需要设置loadFilter了,
            //如果有多层封装,比如data.jsonMap = {total:xx,rows:{xx}},则需要在loadFilter处理一下。
            /*
            loadFilter: function(data){
                if(data.jsonMap) {
                    return data.jsonMap;
                }
            }*/
        });

        var p = $(‘#dataTable‘).datagrid(‘getPager‘);
        $(p).pagination({
            pageSize: 10,//每页显示的记录条数,默认为10
            pageList: [5,10,15,20],//可以设置每页记录条数的列表
            beforePageText: ‘第‘,//页数文本框前显示的汉字
            afterPageText: ‘页    共 {pages} 页‘,
            displayMsg: ‘共 {total} 条记录‘,
            onSelectPage: function (pageNumber, pageSize) {//分页触发
                find(pageNumber, pageSize);
            }
        });

    }

    function find(pageNumber, pageSize)
    {
            $("#dataTable").datagrid(‘getPager‘).pagination({pageSize : pageSize, pageNumber : pageNumber});//重置
            $("#dataTable").datagrid("loading"); //加屏蔽
            $.ajax({
                type : "POST",
                dataType : "json",
                url : "listUserWithPageForJson",
                data : {
                    pageNumber : pageNumber,
                    pageSize : pageSize
                },
                success : function(data) {
                    $("#dataTable").datagrid(‘loadData‘,data);
                    $("#dataTable").datagrid("loaded"); //移除屏蔽
                },
                error : function(err) {
                    $.messager.alert(‘操作提示‘, ‘获取信息失败...请联系管理员!‘, ‘error‘);
                    $("#dataTable").datagrid("loaded"); //移除屏蔽
                }
            });

    }

</script>
</html>

UserController.java

package com.ssm.controller;

import com.alibaba.fastjson.JSONObject;
import com.ssm.common.PageModel;
import com.ssm.dao.UserDao;
import com.ssm.entity.JsonEntity;
import com.ssm.entity.User;
import com.ssm.service.UserService;
import com.ssm.tools.BlankUtil;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.servlet.mvc.support.RedirectAttributes;

import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * Created by Administrator on 2015-10-15.
 */
@Controller
public class UserController {

    @Resource
    private UserService userService;

    @RequestMapping(value = "listUserWithPageForJson")
    @ResponseBody
    public Object listUserWithPageForJson(PageModel pageModel,User user) {
        Object jsonObject = null;
        try {
            pageModel.setQueryObj(user);
            userService.listUserWithPage(pageModel);
            jsonObject = JSONObject.toJSON(pageModel);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return jsonObject;
    }

}

PageModel.java

package com.ssm.common;

import java.util.List;

/**
 * Created by hbd on 2015/10/22.
 */
public class PageModel<T> {

    private Integer pageNumber; //当前页数
    private Integer pageSize;   //一页显示数量
    private Integer startRow;   //查询起始行
    private Integer total;      //总记录行数
    private List<T> rows;       //查询结果数据
    private T queryObj;         //查询对象

    public Integer getStartRow() {
        if(pageNumber!=null && pageSize!=null) {
            return (pageNumber - 1) * pageSize;
        } else {
            return 0;
        }
    }

    public Integer getPageNumber() {
        return pageNumber;
    }

    public void setPageNumber(Integer pageNumber) {
        this.pageNumber = pageNumber;
    }

    public Integer getPageSize() {
        return pageSize;
    }

    public void setPageSize(Integer pageSize) {
        this.pageSize = pageSize;
    }

    public Integer getTotal() {
        return total;
    }

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

    public List<T> getRows() {
        return rows;
    }

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

    public void setQueryObj(T queryObj) {
        this.queryObj = queryObj;
    }

    public T getQueryObj() {
        return queryObj;
    }
}

UserServiceImpl.java

package com.ssm.service.impl;

import com.ssm.common.PageModel;
import com.ssm.dao.UserDao;
import com.ssm.entity.User;
import com.ssm.service.UserService;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import java.util.List;

/**
 * Created by Administrator on 2015-10-16.
 */
@Service("userService")
public class UserServiceImpl implements UserService {

    @Resource
    private UserDao userDao;

    @Override
    public User getUserById(int userId) {
        return userDao.findUserById(userId);
    }

    @Override
    public void listUserWithPage(PageModel<User> pageModel) {
        pageModel.setRows(userDao.selectUserListWithPage(pageModel));
        pageModel.setTotal(userDao.selectUserCountWithPage(pageModel));
    }

}

UserMapper.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC
        "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!--这块等于dao接口的实现 namespace必须和接口的类路径一样-->
<mapper namespace="com.ssm.dao.UserDao">

    <sql id="sql_count">
        SELECT COUNT(*)
    </sql>
    <sql id="sql_select">
        SELECT *
    </sql>
    <sql id="sql_where">
        FROM USER
        <where>
            <if test="queryObj != null">
                <if test="queryObj.name != null and queryObj.name != ‘‘">
                    AND name like CONCAT(‘%‘,#{queryObj.name},‘%‘)
                </if>
                <if test="queryObj.age != null">
                    AND age = #{queryObj.age}
                </if>
            </if>
        </where>
    </sql>

    <select id="selectUserListWithPage" parameterType="com.ssm.common.PageModel" resultType="User">
        <include refid="sql_select"></include>
        <include refid="sql_where"></include>
        <if test="pageNumber != null and  pageSize!= null">
            limit #{startRow},#{pageSize}
        </if>
    </select>

    <select id="selectUserCountWithPage" parameterType="com.ssm.common.PageModel" resultType="Integer">
        <include refid="sql_count"></include>
        <include refid="sql_where"></include>
    </select>

</mapper>
时间: 2024-08-26 18:50:30

SpringMVC+MyBatis+EasyUI 实现分页查询的相关文章

springmvc+mybatis+easyui分页

道德三黄五帝,功名夏侯商周.五霸七雄闹春秋,顷刻兴亡过手.清时几行名姓,北芒无数荒丘.前人播种后人收,说什么原创与否. 今天和大家分享一下springmvc+mybatis+easyui的分页实现.springmvc,mybatis的优缺点不做太多敖述大家都比较了解了,ssm框架整合的例子网上也有很多了,为什么还要写这篇文章那,主要是觉得大多过于零散配置方式又是千差万别,总结一下本文希望对遇到此问题的人有所帮助,前人播种后人收.当然程序开发没有觉得正确,谁也说不出一个正确的实现第N行代码是什么,

Mybatis最入门---分页查询(拦截器分页原理及实现)

[一步是咫尺,一步即天涯] 前文,我们演示了物理分页的Sql实现方式,这种方式使得我们每次在编写查询服务时,不断的重复造轮子.这样的代码实现方式就显得十分的笨拙了.本文是Mybatis分页查询的最后一片内容,我们将介绍基于拦截器的,精巧的实现方式.在阅读这篇文章之前,强烈建议各位看官能够先阅读上文.这样就能对下文我们提及的各种对象及他们之间的关系有一个清晰的关系.好了,废话不多讲,开始我们的正文部分吧. 准备工作: a.操作系统 :win7 x64 b.基本软件:MySQL,Mybatis,SQ

Spring+SpringMVC+MyBatis+easyUI整合基础篇(二)牛刀小试

承接上文,该篇即为项目整合的介绍了. 废话不多说,先把源码和项目地址放上来,重点要写在前面. github地址为ssm-demo 你也可以先体验一下实际效果,点击这里就行啦 账号:admin 密码:123456 从构思这个博客,一直到最终确定以这个项目为切入点,中间也是各种问题出现,毕竟是新人,所以也是十分的小心,修改代码以及搬上github其实花了不少时间,但也特别的认真,不知道是怎么回事,感觉这几天的过程比逼死产品经理还要精彩和享受.或许是博客路上的第一站吧,有压力也有新奇,希望自己能坚持下

Spring+SpringMVC+mybatis+easyui整合实例(一)实例介绍

这几天打算做一个 spring + spring mvc+ mybatis + easyui 框架的整合实例,自己做个知识整理,同时也给学习这个的朋友提供点帮助. 具体介绍等项目完成在这里做个总结,这篇博客先占个位置. 稍后会做个专栏,把这部分东西放进去,专栏每天都会更新,有需要的可以关注一下. 简单介绍: 本实例全部使用注解,包括mybatis.spring的部分. 待续- 版权声明:本文为博主原创文章,未经博主允许不得转载.

springmvc + jquery easyui实现分页显示

如有不明白的地方,戏迎加入QQ群交流:66728073 一,下载并导入jquery easyui的导 <link rel="stylesheet" type="text/css" href="<%=basePath%>js/jquery-easyui-1.4/themes/default/easyui.css"> <link rel="stylesheet" type="text/css

Spring+SpringMVC+mybatis+easyui整合实例(四)easyUI界面部分

首先简单介绍下easyui的使用. 刚接触asyui的盆友可以看一下. 稍后这里附easyui1.4中文文档以及整站文件下载地址 - > 我们从datagrid表格入手,先显示一个简单的表格来说明一下easyui的使用.后面再加一个功能完整的表格 首先方法写好,还是使用之前的例子,没看过之前博客的可以翻一下. StudentDaoIF.java @Select("select * from student") @Results({ @Result(column = "i

mybatis组合模糊+分页查询

//组合模糊查询就是这么简单 <select id="findAllJiemu" parameterType="java.util.Map" resultMap="ImNoticeJiemu"> SELECT A.*,(select f.names from pt_userinfo f where f.ids = ( select r.userinfoids from pt_user r where r.ids = A.createu

Spring+SpringMVC+MyBatis+easyUI整合基础篇(四)代码简化

敲了一天的代码,有些烦,感觉前一篇文章写的太笼统了,哈哈哈. 本来呢,也就是刚开始写,所以很多细节都想不到,源码也放上来了,自己动动手应该也就可以了,无非是自己多注意一点,细心一点,编码啊,jar包啊,有时候或者一个分号,或者一个单引号双引号,这些都可能导致出错的,一定要多动手,自己多实践. 又看了一下代码,感觉对于入门的人来说,还是有些不合适的,easyui.ajax这些知识点也不是一天两天就能掌握的,所以,又写了一个小demo,把easyui.日志这些都去掉了,就保留一个功能,当做搭建项目的

springmvc+mybatis+html 下将查询数据以excell形式上传到ftp(下)

上节讲到的是从数据库中查询相应的结果以excell形式写到ftp服务器上,今天又试了试从ftp上将excell 文件下载到本地目录,一开始的时候遇到了中文乱码问题,文件名中含有中文下载下来文件名为乱码,以下贴出核心代码 1 package com.ninefbank.smallpay.admin.util; 2 3 import java.io.BufferedOutputStream; 4 import java.io.File; 5 import java.io.FileInputStrea