ssm实现分页查询

ssm整合实现分页查询

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

  1.mapper.xml配置

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

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

  2.index.jsp

 1 <html>
 2 <head>
 3     <title>page</title>
 4     <link rel="stylesheet" type="text/css" href="css/index.css">
 5 </head>
 6 <body>
 7 <div style="width: 100%;margin-top:20px;">
 8     <table>
 9         <tr style="background-color: #F5F5F5;">
10             <th>username</th>
11             <th>password</th>
12             <th>sex</th>
13             <th>email</th>
14             <th>createTime</th>
15             <th>updateTime</th>
16         </tr>
17         <div id = "show_data">
18             <c:choose>
19                 <c:when test="${ulist != null}">
20                     <c:forEach items="${ulist}" var="u">
21                         <tr>
22                             <td>${u.username}</td>
23                             <td>${u.password}</td>
24                             <td>${u.sex}</td>
25                             <td>${u.email}</td>
26                             <td><fmt:formatDate value="${u.create_time}" type="date"/></td>
27                             <td><fmt:formatDate value="${u.update_time}" type="date"/></td>
28                         </tr>
29                     </c:forEach>
30                 </c:when>
31                 <c:otherwise>
32                     <tr>
33                         <td></td>
34                         <td></td>
35                         <td></td>
36                         <td></td>
37                         <td></td>
38                     </tr>
39                 </c:otherwise>
40             </c:choose>
41         </div>
42     </table>
43     <div class="page">
44         <div class="page_cell">首页</div>
45         <div class="page_cell" ip="up_page">上一页</div>
46         <div style="float: left;margin: 2px"><%=session.getAttribute("page")%>/${ulist[0].number}</div>
47         <div class="page_cell" onclick="next_page(<%=session.getAttribute("page")%>)">下一页</div>
48         <div class="page_cell">末页</div>
49     </div>
50 </div>
51 </body>
52     <script type="text/javascript" src="js/index.js"></script>
53     <script type="text/javascript" src="js/jquery.js"></script>
54 </html>

  3.css

 1 body{
 2     width: 100%;
 3     margin: 0;
 4 }
 5 table{
 6     border:1px solid red;
 7     text-align: center;
 8     margin: auto;
 9     border-collapse: collapse;
10 }
11 tr{
12     border: 1px solid #ddd
13 }
14 th{
15     width: 150px;
16     font-weight: 700;
17     height: 36px;
18 }
19 td{
20     height: 36px;
21 }
22 .page{
23     margin: auto;
24     width: 300px;
25     text-align: center;
26     margin-top: 10px;
27 }
28 .page_cell{
29     float: left;
30     width: 50px;
31     border:1px solid #F5F5F5;
32     margin:2px;
33     cursor: pointer;
34 }
35 .page_cell:hover{
36     -webkit-box-shadow: #777 0px 0px 1px;
37 }

  4.js

 1 /**
 2  * 下一页
 3  */
 4 function next_page(page){
 5     var data = {
 6         "page":page
 7     };
 8     $.ajax({
 9        type:"post",
10        url:"/RoleControl/next_page.do",
11        data:JSON.stringify(data),
12        dataType:"json",
13        contentType:"application/json",
14        success:function(data){
15            var show_data = document.getElementById("show_data")
16            show_data.innerHTML = " ";
17            for(i=0; i<data.length; i++){
18                 //.....异步刷新页面
19            }
20        },
21        error:function(data){
22            alert("网络连接错误");
23        }
24    });
25 }

  5.控制器

 1 @RequestMapping("/index.do")
 2     public String index(ModelMap map, HttpSession session){
 3         session.setAttribute("page",1);
 4         List<User> ulist =  userService.selectUsersByPage(0);
 5         map.put("ulist",ulist);
 6         return "index";
 7     }
 8
 9     /**
10      * 用户信息分页查询
11      * @param params
12      * @return
13      */
14     @RequestMapping(value = "/next_page.do",method = RequestMethod.POST)
15     @ResponseBody
16     public String getUsersByPage(@RequestBody JSONObject params){
17         // Map<String,String> paramsMap = JSON.parseObject(params,new TypeReference<Map<String,String>>(){});
18         System.out.println(params.get("page").toString());
19         List<User> ulist = userService.selectUsersByPage(Integer.parseInt(params.get("page").toString())*10);
20         return JSON.toJSONString(ulist);
21     }

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

  

 原因:

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

1 ByteArrayHttpMessageConverter
2 StringHttpMessageConverter
3 ResourceHttpMessageConverter
4 SourceHttpMessageConverter
5 XmlAwareFormHttpMessageConverter
6 Jaxb2RootElementHttpMessageConverter
7 MappingJacksonHttpMessageConverter

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

 1     <dependency>
 2            <groupId>com.fasterxml.jackson.core</groupId>
 3            <artifactId>jackson-core</artifactId>
 4            <version>2.5.2</version>
 5        </dependency>
 6
 7        <dependency>
 8            <groupId>com.fasterxml.jackson.core</groupId>
 9            <artifactId>jackson-databind</artifactId>
10            <version>2.5.2</version>
11        </dependency>

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

  

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

1 begin
2     declare pid int;
3     set pid = 10000;
4     while pid>0 DO
5         insert into user values (pid,‘pw‘,‘sex‘,‘email‘,now(),now());
6         set pid = pid-1;
7     end while;
8 end

===

时间: 2024-08-30 17:27:57

ssm实现分页查询的相关文章

基于Mysql数据库的SSM分页查询

前言: Hello,本Y又来了,"分页"在我们使用软件的过程中是一个很常见的场景,比如博客园对于每个博主的博客都进行了分页展示.可以简单清晰的展示数据,防止一下子将过多的数据展现给用户,毕竟用户的阅读能力和短期接受力都有限,使用分页可以避免带给用户浏览上的不舒服感,利用它可以带给用户良好的体验,便于浏览和查询数据.那么本期我们的博客就来探讨关于分页,使用的Java的框架是Spring+Springmvc+mybatis,这也是目前企业非常流行的搭配方式,使用的数据库是Mysql,我们将

SSM整合dubbo 进行分页查询

1.先书写Mapper和sql语句 public interface ActEntityMapper { int deleteByPrimaryKey(String actId); int insert(ActEntity record); int insertSelective(ActEntity record); ActEntity selectByPrimaryKey(String actId); int updateByPrimaryKeySelective(ActEntity reco

Oracle分页查询

一.利用rownum,无order by(最优方案) 如下例查询出来5003行数据,然后扔掉了前面5000行,返回后面的300行.经过测试,此方法成本最低,只嵌套一层,速度最快!即使查询的数据量再大,也几乎不受影响,速度依然. SELECT * FROM (SELECT ROWNUM AS rowno, t.* FROM XXX t WHERE hire_date BETWEEN TO_DATE ('20060501', 'yyyymmdd') AND TO_DATE ('20060731',

QBC查询、离线条件查询(DetachedCriteric)和分页查询模版

一.QBC检索步骤 QBC检索步骤: 1.调用Session的createCriteria()方法创建一个Criteria对象. 2.设定查询条件.Expression类提供了一系列用于设定查询条件的静态方法, 这些静态方法都返回Criterion实例,每个Criterion实例代表一个查询条件. Criteria的add()方法用于加入查询条件. 3.调用Criteria的list()方法执行查询语句.该方法返回List类型的查询结果,在 List集合中存放了符合查询条件的持久化对象. 比较运

Linq高级查询与分页查询

Linq高级查询 以~开头: r=>r.Name.StartsWith("李"); 以~结尾: r=>r.Name.EndsWith("光"); 包含(模糊查询): r=>r.Name.Contains("四"); 数据总个数: Con.Goods.Count();||Con.Users.ToList().count; 最大值: Con.Goods.ToList().Max(r=>r.Price); 最小值: Con.Go

bos 第4 (区域excel批量导入、区域通用分页查询、分区的添加、分区多条件分页查询、分区导出excel)

BOS项目笔记 第4天 今天内容安排: 1.区域批量导入功能 jQuery OCUpload(一键上传插件).apache POI.pinyin4j 2.实现区域的分页查询 3.对分页代码重构 4.添加分区(combobox下拉框) 5.分区的组合条件分页查询 6.分区数据导出功能 1. 区域数据批量导入功能 1.1 一键上传插件使用 ajax不能做文件上传. 第一步:在jsp页面中引入插件的js文件 <script type="text/javascript" src=&quo

mybatis中分页查询

1 如果在查询方法中有多个参数,可以使用map对象将所有数据都存储进去.比如分页查询,需要用到两个参数,可以将这两个参数包装到map中. 例子:分页查询 dao层方法 public List<Student> getStudentPage(int pstart, int pnumber) throws Exception{ SqlSession sqlSession = MybatisUtil.getSqlSession(); Map<String,Integer> map = n

HBase多条件及分页查询的一些方法

HBase是Apache Hadoop生态系统中的重要一员,它的海量数据存储能力,超高的数据读写性能,以及优秀的可扩展性使之成为最受欢迎的NoSQL数据库之一.它超强的插入和读取性能与它的数据组织方式有着密切的关系,在逻辑上,HBase的表数据按RowKey进行字典排序, RowKey实际上是数据表的一级索引(Primary Index),由于HBase本身没有二级索引(Secondary Index)机制,基于索引检索数据只能单纯地依靠RowKey.也只有使用RowKey查询数据才能得到非常高

.net淘宝客基础api 分页查询

1 using System; 2 using System.Collections.Generic; 3 using System.Configuration; 4 using System.Linq; 5 using System.Web; 6 using Top.Api; 7 using Top.Api.Request; 8 using Top.Api.Response; 9 10 namespace MvcWebApp.DataBase 11 { 12 public class TaoD