Dao层
int getCount(@Param("valueName")String valueName);//模糊查询 查看 总条数
List<实体类> dataDictionaryList(
@Param("valueName")String valueName, //查询 valueName
@Param("currentNo")Integer currentNo,//当前页
@Param("pageSize")Integer pageSize);//页容量 一页显示几条
Mapper.xml层
//分页 加模糊查询
SELECT * FROM data_dictionary
WHERE valueName like CONCAT('%',#{valueName},'%')
order by creationDate DESC limit #{currentNo},#{pageSize}
// valueName 模糊查询
// order by creationDate DESC 按照时间排序
// currentNo 第几页开始 pageSize 一页显示多少
//查询总条数
SELECT COUNT(*) as count FROM data_dictionary
WHERE valueName like CONCAT('%',#{valueName},'%')
Service层
//查询总条数
int getCount(String valueName);
//模糊查询 加分页
List<DataDictionary> dataDictionaryList( String valueName,
Integer currentNo,
Integer pageSize);
ServiceImpl层
@Autowired
private DictionaryDao dictionaryDao;
@Override
public int getCount(String valueName) {
int count = dictionaryDao.getCount(valueName);
return count;
}
@Override
public List<DataDictionary> dataDictionaryList(String valueName,
Integer currentNo,
Integer pageSize){
currentNo = (currentNo - 1) * pageSize;
List<DataDictionary> dataDictionaryList = null
dataDictionaryList = dictionaryDao.dataDictionaryList(valueName,currentNo,pageSize);
return dataDictionaryList;
}
PageSupport 实体类
public class PageSupport {
//当前页码-来自于用户输入
private int currentPageNo = 1;
//总数量(表)
private int totalCount = 0;
//页面容量
private int pageSize = 0;
//总页数-totalCount/pageSize(+1)
private int totalPageCount = 1;
public int getCurrentPageNo() {
return currentPageNo;
}
public void setCurrentPageNo(int currentPageNo) {
if(currentPageNo > 0){
this.currentPageNo = currentPageNo;
}
}
public int getTotalCount() {
return totalCount;
}
public void setTotalCount(int totalCount) {
if(totalCount > 0){
this.totalCount = totalCount;
//设置总页数
this.setTotalPageCountByRs();
}
}
public int getPageSize() {
return pageSize;
}
public void setPageSize(int pageSize) {
if(pageSize > 0){
this.pageSize = pageSize;
}
}
public int getTotalPageCount() {
return totalPageCount;
}
public void setTotalPageCount(int totalPageCount) {
this.totalPageCount = totalPageCount;
}
public void setTotalPageCountByRs(){
if(this.totalCount % this.pageSize == 0){
this.totalPageCount = this.totalCount / this.pageSize;
}else if(this.totalCount % this.pageSize > 0){
this.totalPageCount = this.totalCount / this.pageSize + 1;
}else{
this.totalPageCount = 0;
}
}
}
分页器
Controller层
@Controller
@RequestMapping("路径")
public class DictionaryController {
@Autowired
private DictionaryService dictionaryService;
@RequestMapping("/backend/app/dictionarylist")
public String dictionarylist(Model model,
@RequestParam(value = "valueName",required = false)String valueName,
@RequestParam(value = "pageIndex",required = false)String pageIndex){
int pageSize = 5;//页容量
int currentNo = 1;//当前页
if(pageIndex != null && !pageIndex.equals("")){
currentNo = Integer.valueOf(pageIndex);
}
int totalCount = 0 ; //总条数
totalCount = dictionaryService.getCount(valueName);
PageSupport pages = new PageSupport();//分页器
pages.setPageSize(pageSize); //页容量
pages.setCurrentPageNo(currentNo); //当前页
pages.setTotalCount(totalCount); //总条数
int totalPageCount = pages.getTotalPageCount();//页数
if (currentNo <1 ){
currentNo = 1;//如果当前页小于1 给 currentNo 赋值 1
}else if (currentNo > totalPageCount){
currentNo = totalPageCount; //如果当前页大于总条数 总条数赋值给当前页
}
List<DataDictionary> dataDictionaryList =
dictionaryService.dataDictionaryList(valueName,currentNo,pageSize);
model.addAttribute("AppDictionaryList",dataDictionaryList);//传送到 .jsp页面
model.addAttribute("pages",pages); //分页器
return "发送的路径";
}
}
jsp页面
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
//需要C 来遍历输出
<div class="row">
<form method="post" action="发送的路径"
<input type="text" name="valueName" id="valueName">
<input type="hidden" name="pageIndex" value="1" />
<input type="submit" value="查询">
</form>
<table border="1px" width="1000px" style="height:200px;border-spacing: 0" align="center">
<thead>
<tr>
<th>类型编码</th>
<th>类型名称</th>
<th>类型值Id</th>
<th>类型值Name</th>
<th>创建者</th>
<th>创建时间</th>
<th>更新者</th>
<th>最近更新时间</th>
<th>操作</th>
</tr>
</thead>
<thead>
<c:forEach var="dictionarylist" items="${AppDictionaryList}" >
<tr style="height: 30px" align="center">
<td>${dictionarylist.typeCode}</td>
<td>${dictionarylist.typeName}</td>
<td>${dictionarylist.valueId}</td>
<td>${dictionarylist.valueName}</td>
<td>${dictionarylist.userName}</td>
<td>${dictionarylist.creationDate}</td>
<td>${dictionarylist.modifyBy}</td>
<td>${dictionarylist.modifyDate}</td>
<td>
<a href="#">修改</a>
<a href="#">删除</a>
<a href="#">查看</a>
</td>
</tr>
</c:forEach>
</thead>
</table>
<span>共${pages.totalCount}记录 : ${pages.currentPageNo} / ${pages.totalPageCount}</span>
<span>
<c:if test="${pages.currentPageNo > 1}">
<a href="javascript:page_nav(document.forms[0],1);">首页</a>
<a href="javascript:page_nav(document.forms[0],${pages.currentPageNo-1});" >上一页</a> :
</c:if>
<c:if test="${pages.currentPageNo < pages.totalPageCount }">
<a href="javascript:page_nav(document.forms[0],${pages.currentPageNo+1});" >下一页</a> :
<a href="javascript:page_nav(document.forms[0],${pages.totalPageCount});" >末页</a>
</c:if>
</span>
</div>
//引入的JS
<script src="${pageContext.request.contextPath }/statics/localjs/rollpage.js"></script>
Js
function page_nav(frm,num){
frm.pageIndex.value = num;
frm.submit();
}
pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.yuntu</groupId>
<artifactId>MAVEN_TEST</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>war</packaging>
<dependencies>
<!--pom.xml默认就会配置的Junit单元测试,这里我修改了版本-->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<!-- 指定范围,在测试时才会加载 -->
<scope>test</scope>
</dependency>
<!-- java ee -->
<dependency>
<groupId>javax</groupId>
<artifactId>javaee-api</artifactId>
<version>7.0</version>
</dependency>
<!--不添加会报500访问jsp网页错误,找不到此类-->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
<scope>runtime</scope>
</dependency>
<!-- 添加日志jar包 ,建议通过slf4j设计日志系统,方便扩展:slf4j-log4j12这个包
依赖了slf4j和log4j,所以使用slf4j+log4j的组合只要配置上面这一个依赖就够了-->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.7.28</version>
</dependency>
<!-- 添加jackson,用于SpringMVC默认就支持的json转换器MappingJackson2HttpMessageConverter(基于Jackson的JSON转换器,能够将对象转换成JSON格式的数据)-->
<!--对于系统中默认包含的json转换器,只要我们在项目中加入转换器所依赖的JAR包,相关转换器就会被自动加载。-->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.8.7</version>
</dependency>
<!-- 添加fastjson,效率更好并且适应场景更多,可以用来代替SpringMVC默认的jackson或Gson数据转换器-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.41</version>
</dependency>
<!-- 数据库 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.6</version>
</dependency>
<!-- 数据库连接池 -->
<dependency>
<groupId>com.mchange</groupId>
<artifactId>c3p0</artifactId>
<version>0.9.5.2</version>
</dependency>
<!-- MyBatis -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.2.2</version>
</dependency>
<!-- mybatis/spring整合包 -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>1.3.1</version>
</dependency>
<!-- Spring核心依赖 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>3.2.13.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
<version>3.2.13.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>3.2.13.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>3.2.13.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
<version>3.2.13.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>3.2.13.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>3.2.13.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>3.2.13.RELEASE</version>
</dependency>
<!-- 以下是 SpringAOP所需要的包 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aop</artifactId>
<version>3.2.13.RELEASE</version>
</dependency>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjrt</artifactId>
<version>1.9.1</version>
</dependency>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
<version>1.9.1</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aspects</artifactId>
<version>4.3.7.RELEASE</version>
</dependency>
<!--CGLIB是一个功能强大,高性能的代码生成包。它为没有实现接口的类提供代理,为JDK的动态代理提供了很好的补充。-->
<dependency>
<groupId>cglib</groupId>
<artifactId>cglib</artifactId>
<version>2.2.2</version>
</dependency>
<!-- 以上是 SpringAOP 所需要的包 -->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-dbcp2</artifactId>
<version>2.2.0</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.commons/commons-pool2 -->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-pool2</artifactId>
<version>2.4.3</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.mybatis/mybatis-spring -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>1.3.1</version>
</dependency>
<!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<scope>provided</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/commons-fileupload/commons-fileupload -->
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.2.2</version>
</dependency>
<!-- https://mvnrepository.com/artifact/commons-io/commons-io -->
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.4</version>
</dependency>
<dependency>
<groupId>javax.validation</groupId>
<artifactId>validation-api</artifactId>
<version>2.0.0.Alpha1</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-validator</artifactId>
<version>5.4.1.Final</version>
</dependency>
</dependencies>
</project>