zoukankan      html  css  js  c++  java
  • javaweb分页查询实现

    Javaweb分页技术实现

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

    //分页查询语句
    select * from 表名 where limit page , count;
    和
    //获取表中的总数据,确定页数
    select count(*) from 表名;

    不说废话直接上代码

    前端代码:

    <!DOCTYPE html>
    <html lang="en">
    <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">
    </head>
    <body>
    
    <div class="container">
        <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=" 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+"'>
    " +
                            "<td>"+obj.cityId+"</td>
    " +
                            "<td>"+obj.cityEn+"</td>
    " +
                            "<td>"+obj.cityCn+"</td>
    " +
                            "<td>"+obj.countryCode+"</td>
    " +
                            "<td>"+obj.countryEn+"</td>
    " +
                            "<td>"+obj.countryCn+"</td>
    " +
                            "<td>"+obj.provinceEn+"</td>
    " +
                            "<td>"+obj.provinceCn+"</td>
    " +
                            "</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>
    View Code

    后台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;
        }
    }
    View Code

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

    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;
        }
    }
    View Code

    后台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;
        }
    }
  • 相关阅读:
    加入创业公司有什么利弊
    Find Minimum in Rotated Sorted Array II
    Search in Rotated Sorted Array II
    Search in Rotated Sorted Array
    Find Minimum in Rotated Sorted Array
    Remove Duplicates from Sorted Array
    Spiral Matrix
    Spiral Matrix II
    Symmetric Tree
    Rotate Image
  • 原文地址:https://www.cnblogs.com/hhmm99/p/9675027.html
Copyright © 2011-2022 走看看