Java+ Maven.. 分页查询 + 模糊查询

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>

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值