SSM框架實現分頁,返回分頁的JSON資料
先看一下返回的JSON資料:
{
"pagNum": 1,
"pageSize": 5,
"totalRecord": 12,
"totalPage": 3,
"startIndex": 0,
"dateList": [
{
"employee_id": 2,
"employee_account": "44",
"username": "44",
"password": "44",
"age": 44,
"address ": "0000",
"departmentname": "生產技術部"
},
{
"employee_id": 3,
"employee_account": "44",
"username": "44",
"password": "44",
"age": 44,
"address": "0000",
"departmentname": "生產技術部"
},
{
"employee_id ": 4,
"employee_account": "897",
"username": "張紅",
"password": "0989",
"age": 45,
"address": "河北省石家莊市公園路45號",
"departmentname": "系統服務部"
},
{
"employee_id": 6,
"employee_account": "6767",
"username ": "龍飛",
"password": "9889789",
"age": 24,
"address": "江蘇省南京市人民路88號",
"departmentname": "廣告部"
},
{
"employee_id": 10,
"employee_account": "11111111",
"username": "測試一",
"password": "1111111",
"age": 11111,
"address": "四川成都市",
"departmentname": "廣告部"
}
],
"start": 1,
"end": 3
}
所用到的幾個類:
* Employee.java:實體類
* Page.java:分頁類
* EmployeeDao.java:持久層介面
* EmployeeMapping.xml:資料庫對映檔案
* EmployeeService.java:服務層介面
* EmployeeServiceImpl.java:服務層介面實現類
* EmployeeController.java:控制器類
起主要作用的是Page類:
private int pagNum;// 當前的頁數
private int pageSize;// 每頁顯示數量,limit函式第二個引數
private int totalRecord;// 總記錄數
private int totalPage;// 總頁數
private int startIndex;// 開始位置,limit函式第一個引數
private List<T> dateList;
private int start;
private int end;
public Page() {
}
public Page(int pagNum, int pageSize, int totalRecord) {
this.pagNum = pagNum;
this.pageSize = pageSize;
this.totalRecord = totalRecord;
// 計算總頁數
if (totalRecord % pageSize == 0) {
this.totalPage = totalRecord / pageSize;
} else {
this.totalPage = (totalRecord / pageSize) + 1;
}
// 確定limit函式的第一個引數的值
this.startIndex = pagNum * pageSize;
this.start = 1;
this.end = 5;
if (totalPage <= 5) {
this.end = this.totalPage;
} else {// pagNum=6;start=4;end=8
this.start = pagNum - 2;
this.end = pagNum + 2;
}
if (start < 0) {
this.start = 1;
this.end = 5;
}
// 舉個例子:一共有10頁,現在就在第10頁,那麼根據上面的邏輯end=12,錯誤;則end=this.totalPage;且下面導航欄還是要出現5個,則start=end-5
if (end > this.totalPage) {
this.end = totalPage;
this.start = end - 5;
}
}
從資料庫獲取相關資訊:
- dao介面:
public interface EmployeeDao {
//獲取資料的總條數,即totalRecord
int getEmployeeTotal();
//獲取指定的資料
List<Employee> getAllEmployee(Page<Employee> page);
}
- mapping檔案:
<?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" >
<mapper namespace="com.example.oa.dao.EmployeeDao">
<select id="getEmployeeTotal" resultType="java.lang.Integer">
SELECT COUNT(1) FROM
employee
</select>
<select id="getAllEmployee"
resultType="com.example.oa.domain.Employee"
parameterType="com.example.oa.domain.Page">
SELECT
e.employee_id,
e.employee_account,
e.username,
e.`password`,
e.age,
e.address,
d.departmentname
FROM
employee e,
department d
WHERE
e.departmentid = d.departmentid LIMIT
#{startIndex},#{pageSize}
</select>
</mapper>
- service層介面:
public interface EmployeeService {
//返回分頁資料和主題資訊
Page<Employee> getEmployee(Page<Employee> page);
}
- service實現類:
@Service
public class EmployeeServiceImpl implements EmployeeService {
@Autowired
private EmployeeDao employeeDao;
private Logger log = Logger.getLogger(EmployeeServiceImpl.class);
@Override
public Page<Employee> getEmployee(Page<Employee> page) {
//獲取總條數,即totalRecord
int total = employeeDao.getEmployeeTotal();
Page<Employee> allpage = new Page<Employee>(page.getPagNum(), page.getPageSize(), total);
log.info("allpage:" + allpage.toString());
//將獲取到的集合資料,新增到page中的datalist引數中
allpage.setDateList(employeeDao.getAllEmployee(allpage));
//返回所有的分頁引數和資料
return allpage;
}
}
- 控制層:
@Controller
@RequestMapping(value = "/employeeController")
public class EmployeeController {
@Autowired
private EmployeeService employeeService;
@RequestMapping(value = "/getAll")
@ResponseBody
public Page<Employee> getAll(Page<Employee> page) {
Page<Employee> page1 = employeeService.getEmployee(page);
return page1;
}
}
- 資料表的話,自己建一張表就行了(以下是我的SQL)
CREATE TABLE `employee` (
`employee_id` int(11) NOT NULL AUTO_INCREMENT,
`employee_account` varchar(255) NOT NULL,
`username` varchar(50) NOT NULL,
`password` varchar(100) NOT NULL,
`age` int(11) DEFAULT NULL,
`address` varchar(255) DEFAULT NULL,
`departmentid` int(11) DEFAULT NULL,
`role` int(3) NOT NULL,
PRIMARY KEY (`employee_id`),
KEY `departmentid` (`departmentid`) USING BTREE,
CONSTRAINT `employee_ibfk_1` FOREIGN KEY (`departmentid`) REFERENCES `department` (`departmentid`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB AUTO_INCREMENT=18 DEFAULT CHARSET=utf8 COMMENT='員工表';
至此,SSM框架的分頁功能實現完成。完整程式碼以上傳到碼雲,有需要請下載:Paging
參考博文:
相關推薦
SSM框架實現分頁,返回分頁的JSON資料
先看一下返回的JSON資料: { "pagNum": 1, "pageSize": 5, "totalRecord": 12, "totalPage": 3,
SSM框架整合PageHelper外掛,實現分頁功能
本文簡單的介紹瞭如何運用PageHelper外掛實現分頁功能。 一、在 pom.xml 中新增如下依賴: 從下面的地址中檢視最新版本的 jar 包 <!-- 新增分佈外掛的包pageh
SSM框架實現分頁查詢
BookDaoMapper.java /** * 根據多條件(圖書分類,圖書名稱,是否借閱)動態查詢圖書資訊 * * @param bookType * 圖書分類 * @param bookName * 圖書名稱 *
ssm框架實現條件、分頁查詢【親測】
0.用到了jquery、AJAX(前端)、ssm框架 1. input輸入框和查詢按鈕 <input id="queryText" type="text" placeholder="請輸入查詢條件"> <button id
ssm框架實現分頁(limit)
pojo層新建類PageBean package com.qut.pojo; import java.util.List; public class PageBean<T>{
SSM框架——實現分頁和搜尋分頁
分頁是JAVA WEB專案常用的功能,昨天在Spring MVC中實現了簡單的分頁操作和搜尋分頁,在此記錄一下。使用的框架為(MyBatis+SpringMVC+Spring)。 首先我們需要一個分頁的工具類: 1.分頁 import java.
MiniUI前臺分頁,假分頁實現源碼
MiniUI 假分頁背景對於數據較少,無需後臺分頁的需求,可使用以下解決方案方案MiniUI提供了監聽事件,特別方便即可實現。源碼mini.parse(); var grid = mini.get("datagridTable"); // 獲取所有數據和總記錄數 { tot
【ssm框架】使用PageHelper外掛進行分頁
通常我們要實現分頁,都需要傳入一個當前頁,要讀的資料個數,經過計算之後,將需要的值填入接在sql語句limit關鍵字的後面。然而使用PageHelper之後我們並不需要對sql新增什麼limit,直接按查詢全部去寫sql語句即可。只要在查詢之前呼叫PageHelper.startPage(pag
js實現蕨類植物葉子,葉子分形圖形
doc ren pat fill ret () and .get AS 分形圖形很是奇妙,這裏展示的是蕨類植物葉子的分形圖形。 這裏使用Canvas 通過描點的方式來繪制圖形,先說一下原理: 先來個方程: 或許看完這個覺得很懵逼,這裏就不說這個方程怎麽計算了。由這個方程
SSM框架整合Apache Shiro,實現安全登入驗證和許可權驗證功能
第一部分 Apache Shiro的簡介 1、什麼是 apache shiro : Apache Shiro是一個功能強大且易於使用的Java安全框架,提供了認證,授權,加密,和會話管理 如同 spring security 一樣都是是一個許可權安全框架,但是與Spri
hibernate 通用分頁,查詢分頁的泛型類
寫在泛型dao層的實現類裡,可以達到寫一次,然後繼承這個實現類,傳入各自的型別就可以達到很高的複用效果,增加開發效率 也可以作為查詢的分頁,自己動態構造查詢的語句,然後對應好傳入的引數,動態構造查詢語句的時候StringBuffer,直接用string型別效率低。 向上具體
mybatis邏輯分頁,含分頁導航
mybatis是非常優秀的半orm框架,比hibernate更容易控制,效能也很好,但mybatis官方並沒提供分頁功能,需要自己實現,下面提供一種物理分頁的實現思路: (基於sping、spring mvc、mybatis的整合,將PO) 1. 編寫一個Pagina
ssm框架實現execl上傳,並插入資料庫功能
從前端最後到資料庫,分為頁面(jsp),Controller、service、mapper 。 比較簡單但是使用的方法,沒有封裝成工具類感覺太麻煩。用到了poi解析execl,給出pom.xml<!-- 匯入execl jar包 --> <depen
JQuery AJAX 分頁,跳頁下一頁,上一頁【總結了一天啊乾貨】
網上的分頁基本有問題,自己總結下:程式碼如下<script type="text/javascript"> var pagesi = "2";//每頁行數 var totalPage = "0";//總頁數 var currentPage = "1";//當前頁
用SSM框架實現第一個echarts的例子及一個調用百度開發者工具的例子
response char ons enc styles ping 地理編碼 nco swa 過年後的第一篇Blog,說實話年後的自己好慵懶,一直處於半睡半醒狀態 ̄□ ̄||。年後工作上用了好多新東西,像Spring Boot,Swagger,Jenkins,Maven,
Java使用SSM框架實現登錄頁面的驗證碼功能
def ssa bar double trac ext tst setattr info 最終效果展示: 代碼展示: 1、前端登錄頁面代碼展示 <div class="form-group"> <div class="input-ico
Java使用SSM框架實現登錄頁面記住密碼功能
turn 頁面 賦值 ++ mage login ring 實現 member 最終效果展示: 1、登錄頁面JSP代碼 <label class="checkbox"> <input type="checkbox" name="remembe
對學習成績進行評級,90分以上A;80分以上,90分以下B;以此類推
namespace put using src NPU size mes name info #include "pch.h"#include <iostream>using namespace std;int main(){ float score; int
ssm框架實現簡單互動
ssm框架實現簡單互動 今天簡單
SSM框架實現修改操作
利用SSM框架在頁面內的表單中實現編輯修改的主要步驟總結如下: 1.我們想要修改某個資料,首先應該知道我們需要獲取想要資料在資料庫中id的值,因為我們進行的刪改查的等操作都是通過查詢id的進行的。 2.在這裡,我用的是AJAX的方法對頁面和JAVA之間進行資料傳遞。運用的方法