ssm實現(xiàn)分頁查詢的實例
ssm整合實現(xiàn)分頁查詢
一、通過limit查詢語句實現(xiàn)分頁,并展示
1.mapper.xml配置
<select id="selectUsersByPage" parameterType="int" resultMap="UserMap">
SELECT * number from user limit #{page},10
</select>
查詢user表,從第page項開始,每次返回10條數(shù)據(jù)
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("網(wǎng)絡(luò)連接錯誤");
}
});
}
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對象的時候,發(fā)生了415錯誤(未知媒體錯誤)

原因:
<mvc:annotation-driven />會自動注冊DefaultAnnotationHandlerMapping和AnnotationMethodHandlerAdapter兩個bean ,AnnotationMethodHandlerAdapter將會初始化7個轉(zhuǎn)換器,可以通過調(diào)用AnnotationMethodHandlerAdapter的getMessageConverts()方法來獲取轉(zhuǎn)換器的一個集合 List<HttpMessageConverter>
ByteArrayHttpMessageConverter StringHttpMessageConverter ResourceHttpMessageConverter SourceHttpMessageConverter XmlAwareFormHttpMessageConverter Jaxb2RootElementHttpMessageConverter MappingJacksonHttpMessageConverter
解決:對于json的解析就是通過MappingJacksonHttpMessageConverter轉(zhuǎn)換器完成的。所以就需要加入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>
加了依賴包后問題就完美解決了,運行結(jié)果如下:

以上查詢的數(shù)據(jù)是通過存儲過程批量插入的:
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實現(xiàn)分頁查詢的實例就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
mybatis3使用@Select等注解實現(xiàn)增刪改查操作
這篇文章主要介紹了mybatis3使用@Select等注解實現(xiàn)增刪改查操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-11-11
一篇文章帶你了解MySQL數(shù)據(jù)庫基礎(chǔ)
這篇文章主要介紹了MySql數(shù)據(jù)庫基礎(chǔ)知識點,總結(jié)整理了mysql數(shù)據(jù)庫基本創(chuàng)建、查看、選擇、刪除以及數(shù)據(jù)類型相關(guān)操作技巧,需要的朋友可以參考下2021-08-08
Apache Commons Math3學(xué)習(xí)之?dāng)?shù)值積分實例代碼
這篇文章主要介紹了Apache Commons Math3學(xué)習(xí)之?dāng)?shù)值積分實例代碼,涉及使用辛普森積分的例子,這里分享給大家,供需要的朋友參考。2017-10-10
MyBatis中RowBounds實現(xiàn)內(nèi)存分頁
RowBounds是MyBatis提供的一種內(nèi)存分頁方式,適用于小數(shù)據(jù)量的分頁場景,本文就來詳細的介紹一下,具有一定的參考價值,感興趣的可以了解一下2024-12-12
Spring?Boot虛擬線程Webflux在JWT驗證和MySQL查詢性能比較
RabbitMQ高級應(yīng)用之消費端限流策略basicQos詳解
Struts2學(xué)習(xí)手冊之文件上傳基礎(chǔ)教程

