java web实现分页查询实例方法

作者:laozhang 时间:2022-12-18 18:07:57 

Javaweb分页技术实现

分页技术就是通过SQL语句(如下)来获取数据,具体实现看下面代码


//分页查询语句
select * from 表名 where limit page , count;

//获取表中的总数据,确定页数
select count(*) from 表名;

java web实现分页查询实例方法

不说废话直接上代码

前端代码:


<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Title</title>
<script src="js/jquery-3.3.1.js"></script>
<link rel="stylesheet" href="css/bootstrap.min.css" rel="external nofollow" >
</head>
<body>

<div>
<div class="row clearfix">
 <div class="col-md-12 column">
  <table class="table table-bordered table-hover">
   <thead>
   <tr>
    <th>City_ID</th>
    <th>City_EN</th>
    <th>City_CN</th>
    <th>Country_code</th>
    <th>Country_EN</th>
    <th>Country_CN</th>
    <th>Province_EN</th>
    <th>Province_CN</th>
   </tr>
   </thead>
   <tbody id="tbody">

</tbody>
  </table>
  <!--分页-->
  第<span id="paging">1</span>页/
  共<span id="countPage">1</span>页/
  <a id="homePage">Home</a>/
  <a id="prevPage">Prev</a>/
  <a id="nextPage">Next</a>/
  转到第:
  <input type="text" style="width: 2em" id="pageNum">
  页
  <a id="goPage">Go</a>

</div>
</div>
</div>
</body>
<script>
$(function () {
 //页面初始化 (显示第一页)
 selectPage(1);
 home();
 prev();
 next();
 goPage();
})
function selectPage(pageCode) {
 //分页查询 pageCode:页数
 $.ajax("getCity",{
  type:"get",
  data:{"currenPage":pageCode},
  success:function (data) {
   $("#tbody").html("");
   //总页数
   $("#countPage").text(data.totalPage);

$.each(data.pageData,function (index,obj) {
    var clazz="";
    if(index%2==0){
     clazz="success";
    }
    $("#tbody").append(
     "<tr class='"+clazz+"'>\n" +
     "<td>"+obj.cityId+"</td>\n" +
     "<td>"+obj.cityEn+"</td>\n" +
     "<td>"+obj.cityCn+"</td>\n" +
     "<td>"+obj.countryCode+"</td>\n" +
     "<td>"+obj.countryEn+"</td>\n" +
     "<td>"+obj.countryCn+"</td>\n" +
     "<td>"+obj.provinceEn+"</td>\n" +
     "<td>"+obj.provinceCn+"</td>\n" +
     "</tr>"
    );
   })

}
 });
}
//第一页
function home() {
 $("#homePage").on("click",function () {
  $("#paging").text(1);
  selectPage(1);
 })
}

//上一页
function prev() {
 $("#prevPage").on("click",function () {
  var prevText=$("#paging").text();
  var prevNum=parseInt(prevText);
  prevNum=prevNum-1;
  if(prevNum<=1){
   selectPage(1);
   $("#paging").text(1);
   return;
  }
  $("#paging").text(prevNum);
  selectPage(prevNum);
 })
}
//下一页
function next() {
 $("#nextPage").on("click",function () {
  //获取文本的值 页数
  var prevText=$("#paging").text();
  //类型转换
  var prevNum=parseInt(prevText);
  //总页数
  var countText=$("#countPage").text();
  //类型转换
  var countNum = parseInt(countText);
  //页数加1
  prevNum=prevNum+1;
  //判断超出了总页码
  if(prevNum>=countNum){
   selectPage(countNum);
   $("#paging").text(countNum);
   return;
  }
  //设置网页增加的值
  $("#paging").text(prevNum);
  //调用分页查询
  selectPage(prevNum);
 })
}
//去到几页
function goPage() {
 $("#goPage").on("click",function () {
  var pageNum=parseInt($("#pageNum").val());
  var countPage=parseInt($("#countPage").text())
  //判断超出了总页码
  if(pageNum>=countPage){
   selectPage(countPage);
   $("#paging").text(countPage);
   $("#pageNum").val(countPage);
   return;
  }
  //判断低于了总页码
  if(pageNum<=1){
   selectPage(1);
   $("#paging").text(1);
   $("#pageNum").val(1);
   return;
  }
  selectPage(pageNum);
  $("#paging").text(pageNum);
 })
}

</script>
</html>

后台servlet代码:


/**
* @author hh
* @Date 2018/9/12
*/
@WebServlet("/getCity")
public class PageServlet extends HttpServlet {
@Override
protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
 //获取当前页参数,第一次访问为空
 String currPage = req.getParameter("currenPage");
 // 判断,如果为空,则设置为1
 if (currPage == null || "".equals(currPage.trim())) {
  currPage = "1";
 }
 //调用service返回分页类实例
 PageBean<City> pageBean=new PageService().getPage(currPage);
 //设置相应文本类型
 resp.setContentType("application/json;charset=utf-8");
 //响应前端
 resp.getWriter().print(new Gson().toJson(pageBean));
}
}

City 实体类:


package edu.nf.demo.entity;

/**
* @author hh
* @Date 2018/9/12
*/
public class City {
private String cityId;
private String cityEn;
private String cityCn;
private String countryCode;
private String countryEn;
private String countryCn;
private String provinceEn;
private String provinceCn;
public String getCityId() {
 return cityId;
}
public void setCityId(String cityId) {
 this.cityId = cityId;
}
public String getCityEn() {
 return cityEn;
}
public void setCityEn(String cityEn) {
 this.cityEn = cityEn;
}

public String getCityCn() {
 return cityCn;
}
public void setCityCn(String cityCn) {
 this.cityCn = cityCn;
}
public String getCountryCode() {
 return countryCode;
}
public void setCountryCode(String countryCode) {
 this.countryCode = countryCode;
}
public String getCountryEn() {
 return countryEn;
}
public void setCountryEn(String countryEn) {
 this.countryEn = countryEn;
}
public String getCountryCn() {
 return countryCn;
}

public void setCountryCn(String countryCn) {
 this.countryCn = countryCn;
}

public String getProvinceEn() {
 return provinceEn;
}

public void setProvinceEn(String provinceEn) {
 this.provinceEn = provinceEn;
}

public String getProvinceCn() {
 return provinceCn;
}

public void setProvinceCn(String provinceCn) {
 this.provinceCn = provinceCn;
}
}

自己写的一个类,专门用于分页查询用的:


package edu.nf.demo.entity;

import java.util.List;

/**
* @author hh
* @Date 2018/9/12
*/
public class PageBean<T> {
/**
 * 当前页, 默认显示第一页
 */
private Integer currntPage = 1;
/**
 * 查询返回的行数(每页显示的行数),默认每页显示10行
 */
private int pageCount = 10;
/**
 * 总记录数
 */
private int totalCount;
/**
 * 总页数 = 总记录数/每页显示的行数(+1)
 */
private int totalPage;
/**
 * 分页查询的数据,运用泛型,可以重复利用
 */
private List<T> pageData;

public int getTotalPage() {
 if (totalCount % pageCount == 0) {
  totalPage = totalCount / pageCount;
 } else {
  totalPage = totalCount / pageCount + 1;
 }
 return totalPage;
}

public void setTotalPage(int totalPage) {
 this.totalPage = totalPage;
}

public int getCurrntPage() {
 return currntPage;
}

public void setCurrntPage(int currntPage) {
 this.currntPage = currntPage;
}

public int getPageCount() {
 return pageCount;
}

public void setPageCount(int pageCount) {
 this.pageCount = pageCount;
}

public int getTotalCount() {
 return totalCount;
}

public void setTotalCount(int totalCount) {
 this.totalCount = totalCount;
}

public List<T> getPageData() {
 return pageData;
}

public void setPageData(List<T> pageData) {
 this.pageData = pageData;
}
}

后台service,逻辑业务层:


/**
* @author hh
* @Date 2018/9/12
*/
public class PageService {

public PageBean getPage(String currPage){
 //类型转换 当前页数
 Integer currenPage = Integer.valueOf(currPage);
 //实例化分页类
 PageBean<City> pageBean = new PageBean();
 //实例化CityDaoImpl类
 CityDaoImpl cityDao=new CityDaoImpl();

//数据库第几行开始查询
 int startPage=(currenPage-1)*pageBean.getPageCount();
 //查询多少行数据 分页类里默认30行
 int selectCount=pageBean.getPageCount();
 //查询数据库获取分页返回的数据 : select * from regional_info limit startPage,selectCount
 List<City> list=cityDao.listCity(startPage,selectCount);
 //获取总数
 int cityCount=cityDao.getCityCount();
 //设置查询的数据
 pageBean.setPageData(list);
 //共多少行
 pageBean.setTotalCount(cityCount);
 //设置总页数
 pageBean.setTotalPage(cityCount/pageBean.getPageCount()+1);
 return pageBean;
}
}
标签:java,web,分页,查询
0
投稿

猜你喜欢

  • 使用Mybatis如何实现删除多个数据

    2023-06-15 21:11:57
  • C#实现把彩色图片灰度化代码分享

    2022-04-21 18:11:33
  • C#实现JWT无状态验证的实战应用解析

    2022-07-28 09:20:26
  • .Net Winform开发笔记(四)透过现象看本质

    2022-06-22 09:36:24
  • 高并发下restTemplate的错误分析方式

    2023-08-23 12:58:24
  • 解决RedisTemplate调用increment报错问题

    2023-11-20 06:35:05
  • 安卓11适配攻略抢先看

    2022-05-22 22:39:05
  • Android实现购物车添加商品特效

    2021-06-25 22:59:45
  • 基于opencv实现车道线检测

    2023-03-11 10:07:52
  • Java图形用户界面设计(Swing)的介绍

    2022-08-23 03:29:37
  • Android实现登录界面的注册功能

    2021-10-22 01:17:55
  • Mybatis-Plus注入SQL原理分析

    2022-11-09 21:17:22
  • Android基于HttpUrlConnection类的文件下载实例代码

    2022-08-28 02:18:49
  • C# 获取文件夹里所有文件名的详细代码

    2023-01-07 02:05:20
  • JavaTCP上传图片代码实例

    2022-02-08 19:05:18
  • ArrayList详解和使用示例_动力节点Java学院整理

    2023-08-05 13:15:41
  • Java基础教程之static五大应用场景

    2023-11-11 05:10:43
  • Java 方法签名详解及实例代码

    2022-02-04 05:56:06
  • C#动态创建button的方法

    2023-02-11 15:58:26
  • Spring的初始化和XML解析的实现

    2022-12-13 15:50:51
  • asp之家 软件编程 m.aspxhome.com