ssm实现分页查询的实例

 更新时间:2017年11月07日 10:16:11   作者:小Cai先森  
下面小编就为大家带来一篇ssm实现分页查询的实例。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

ssm整合实现分页查询

一、通过limit查询语句实现分页,并展示

1.mapper.xml配置

<select id="selectUsersByPage" parameterType="int" resultMap="UserMap">
   SELECT * number from user limit #{page},10
</select> 

查询user表,从第page项开始,每次返回10条数据

2.index.jsp

<html>
<head>
 <title>page</title>
 <link rel="stylesheet" type="text/css" href="css/index.css" rel="external nofollow" >
</head>
<body>
<div style="width: 100%;margin-top:20px;">
 <table>
  <tr style="background-color: #F5F5F5;">
   <th>username</th>
   <th>password</th>
   <th>sex</th>
   <th>email</th>
   <th>createTime</th>
   <th>updateTime</th>
  </tr>
  <div id = "show_data">
   <c:choose>
    <c:when test="${ulist != null}">
     <c:forEach items="${ulist}" var="u">
      <tr>
       <td>${u.username}</td>
       <td>${u.password}</td>
       <td>${u.sex}</td>
       <td>${u.email}</td>
       <td><fmt:formatDate value="${u.create_time}" type="date"/></td>
       <td><fmt:formatDate value="${u.update_time}" type="date"/></td>
      </tr>
     </c:forEach>
    </c:when>
    <c:otherwise>
     <tr>
      <td></td>
      <td></td>
      <td></td>
      <td></td>
      <td></td>
     </tr>
    </c:otherwise>
   </c:choose>
  </div>
 </table>
 <div class="page">
  <div class="page_cell">首页</div>
  <div class="page_cell" ip="up_page">上一页</div>
  <div style="float: left;margin: 2px"><%=session.getAttribute("page")%>/${ulist[0].number}</div>
  <div class="page_cell" onclick="next_page(<%=session.getAttribute("page")%>)">下一页</div>
  <div class="page_cell">末页</div>
 </div>
</div>
</body>
 <script type="text/javascript" src="js/index.js"></script>
 <script type="text/javascript" src="js/jquery.js"></script>
</html>

3.css

body{
 width: 100%;
 margin: 0;
}
table{
 border:1px solid red;
 text-align: center;
 margin: auto;
 border-collapse: collapse;
}
tr{
 border: 1px solid #ddd
}
th{
 width: 150px;
 font-weight: 700;
 height: 36px;
}
td{
 height: 36px;
}
.page{
 margin: auto;
 width: 300px;
 text-align: center;
 margin-top: 10px;
}
.page_cell{
 float: left;
 width: 50px;
 border:1px solid #F5F5F5;
 margin:2px;
 cursor: pointer;
}
.page_cell:hover{
 -webkit-box-shadow: #777 0px 0px 1px;
}

4.js

/**
 * 下一页
 */
function next_page(page){
 var data = {
  "page":page
 };
 $.ajax({
  type:"post",
  url:"/RoleControl/next_page.do",
  data:JSON.stringify(data),
  dataType:"json",
  contentType:"application/json",
  success:function(data){
   var show_data = document.getElementById("show_data")
   show_data.innerHTML = " ";
   for(i=0; i<data.length; i++){
    //.....异步刷新页面
   }
  },
  error:function(data){
   alert("网络连接错误");
  }
 });
}

5.控制器

@RequestMapping("/index.do")
 public String index(ModelMap map, HttpSession session){
  session.setAttribute("page",1);
  List<User> ulist = userService.selectUsersByPage(0);
  map.put("ulist",ulist);
  return "index";
 }

 /**
  * 用户信息分页查询
  * @param params
  * @return
  */
 @RequestMapping(value = "/next_page.do",method = RequestMethod.POST)
 @ResponseBody
 public String getUsersByPage(@RequestBody JSONObject params){
  // Map<String,String> paramsMap = JSON.parseObject(params,new TypeReference<Map<String,String>>(){});
  System.out.println(params.get("page").toString());
  List<User> ulist = userService.selectUsersByPage(Integer.parseInt(params.get("page").toString())*10);
  return JSON.toJSONString(ulist);
 }

 问题:在ajax传递json对象的时候,发生了415错误(未知媒体错误)

  

 原因:

<mvc:annotation-driven />会自动注册DefaultAnnotationHandlerMappingAnnotationMethodHandlerAdapter两个bean ,AnnotationMethodHandlerAdapter将会初始化7个转换器,可以通过调用AnnotationMethodHandlerAdapter的getMessageConverts()方法来获取转换器的一个集合 List<HttpMessageConverter>

ByteArrayHttpMessageConverter 
StringHttpMessageConverter 
ResourceHttpMessageConverter 
SourceHttpMessageConverter 
XmlAwareFormHttpMessageConverter 
Jaxb2RootElementHttpMessageConverter 
MappingJacksonHttpMessageConverter

解决对于json的解析就是通过MappingJacksonHttpMessageConverter转换器完成的。所以就需要加入jackson依赖包:

    <dependency>
      <groupId>com.fasterxml.jackson.core</groupId>
      <artifactId>jackson-core</artifactId>
      <version>2.5.2</version>
    </dependency>

    <dependency>
      <groupId>com.fasterxml.jackson.core</groupId>
      <artifactId>jackson-databind</artifactId>
      <version>2.5.2</version>
    </dependency>

加了依赖包后问题就完美解决了,运行结果如下:

  

以上查询的数据是通过存储过程批量插入的:

begin 
  declare pid int;
  set pid = 10000;
  while pid>0 DO
    insert into user values (pid,'pw','sex','email',now(),now());
    set pid = pid-1;
  end while;
end

这篇ssm实现分页查询的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • mybatis-plus雪花算法增强idworker的实现

    mybatis-plus雪花算法增强idworker的实现

    今天聊聊在mybatis-plus中引入分布式ID生成框架idworker,进一步增强实现生成分布式唯一ID,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-07-07
  • 简述Java中的四种引用类型

    简述Java中的四种引用类型

    从JDK1.2版本开始,把对象的引用分为四种级别,从而使程序能更加灵活的控制对象的生命周期。这四种级别由高到低依次为:强引用、软引用、弱引用和虚引用,下面分别介绍下这四种引用。
    2021-04-04
  • java byte与base64的互转的实现示例

    java byte与base64的互转的实现示例

    在项目开发中经常用到,比如前端上送文件流(byte[])到后台并转成文件,本文主要介绍了java byte与base64的互转的实现示例,具有一定的参考价值,感兴趣的可以了解一下
    2024-02-02
  • Spring框架基于AOP实现简单日志管理步骤解析

    Spring框架基于AOP实现简单日志管理步骤解析

    这篇文章主要介绍了Spring框架基于AOP实现简单日志管理步骤解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-06-06
  • SpringBoot如何读取war包jar包和Resource资源

    SpringBoot如何读取war包jar包和Resource资源

    这篇文章主要介绍了SpringBoot如何读取war包jar包和Resource资源,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-01-01
  • 详解Java中的reactive stream协议

    详解Java中的reactive stream协议

    Stream大家应该都很熟悉了,java8中为所有的集合类都引入了Stream的概念。优雅的链式操作,流式处理逻辑,相信用过的人都会爱不释手。本文将详细介绍Java中的reactive stream协议。
    2021-06-06
  • MyBatis Plus工具快速入门使用教程

    MyBatis Plus工具快速入门使用教程

    这篇文章主要介绍了MyBatis Plus工具快速入门使用教程,需要的朋友可以参考下
    2018-05-05
  • springcloud feign 接口指定接口服务ip方式

    springcloud feign 接口指定接口服务ip方式

    这篇文章主要介绍了springcloud feign 接口指定接口服务ip方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-03-03
  • Java的Spring框架中AOP项目的一般配置和部署教程

    Java的Spring框架中AOP项目的一般配置和部署教程

    这篇文章主要介绍了Java的Spring框架中AOP项目的一般配置和部署教程,AOP面向方面编程的项目部署结构都比较类似,因而也被看作是Spring的一种设计模式使用,需要的朋友可以参考下
    2016-04-04
  • 详解Java的MyBatis框架中的事务处理

    详解Java的MyBatis框架中的事务处理

    利用MyBatis框架的配置管理比直接使用JDBC API编写事务控制要来得更加轻松,这里我们就来详解Java的MyBatis框架中的事务处理,尤其是和Spring框架集成后更加exciting
    2016-06-06

最新评论