首页 技术 正文
技术 2022年11月11日
0 收藏 548 点赞 3,470 浏览 7054 个字
喃都不说了,贴代码,意思都在代码里面了Page.java  //分页类。定义分页字段信息,供前台页面使用package com.core.common;import java.util.List;public class Page<T> {private int pageIndex;//当前页private int pageSize;//每页条数private int totalCount;//符合查询条件总条数private List<T> pageData;//符合查询条件的列表_注意这里是泛型private int startRow;//数据库起始记录指针private int totalPage;//总页数public Page(int pageIndex, int pageSize){this.pageIndex = pageIndex <= 0 ? 1 : pageIndex;this.pageSize = pageSize <= 0 ? 10 : pageSize;}public int getPageIndex() {return pageIndex;}public void setPageIndex(int pageIndex) {this.pageIndex = pageIndex;}public int getPageSize() {return pageSize;}public void setPageSize(int pageSize) {this.pageSize = pageSize;}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;}public int getStartRow() {startRow = (pageIndex-1) * pageSize;return startRow;}public int getTotalPage() {totalPage = (int) Math.ceil(totalCount/Double.parseDouble(String.valueOf(pageSize)));return totalPage;}}//分页过程————controller @RequestMapping(value = {"/order/list"})//page当前页//model 查询参数实体public ModelAndView get_orders(Integer page,B2cOrderModel model){        ModelAndView mv = new ModelAndView();        mv.setViewName("/order_list");//传递参数分别是:当前页,每页条数,查询参数        Page<B2cOrderModel> pageData = orderService.getOrders(getPageIndex(page), ConstantUtil.Page.PAGE_NUM, model);        mv.addObject("pageData", pageData.getPageData());//列表        mv.addObject("totalCount", pageData.getTotalCount());//总条数        mv.addObject("totalPage", pageData.getTotalPage());//总页数        mv.addObject("currentPage", page);//当前页        mv.addObject("pageNav", PageNavUtil.getBluePageNavHtml(getPageIndex(page),ConstantUtil.Page.PAGE_NUM, pageData.getTotalCount(), ConstantUtil.Page.NAV_NUM));//分页导航        return mv;}//分页过程————service@Override    public Page<B2cOrderModel> getOrders(Integer pageIndex, int pageNum, B2cOrderModel model)    {        Page<B2cOrderModel> page = new Page<B2cOrderModel>(pageIndex, pageNum);         //创建查询条件对象        CriteriaCondition condition = new CriteriaCondition();//封装查询条件的类        condition.setDistinct(false);        condition.setStart(page.getStartRow());        condition.setPageSize(pageNum);        condition.setOrderByClause(" CREATED_DT DESC");        condition.put("postName", model.getPostName());        condition.put("postContactPhone", model.getPostContactPhone());        //查询符合条件的总条数和列表        int totalCount = b2cOrderSourceDao.countByCondition(condition.getCondition());        List<B2cOrderModel> pageData = b2cOrderSourceDao.selectByCondition(condition);        //设置分页信息        page.setTotalCount(totalCount);        page.setPageData(pageData);        //返回分页信息对象        return page;}//分页过程————mybatis语句查询条数<select id="countByCondition" parameterType="java.util.Map" resultType="java.lang.Integer">select count(*) from 表<include refid="Base_Where_B2cOrder" /></select>查询列表<select id="selectByCondition" resultMap="Base_Result_B2cOrder" parameterType="com.core.common.CriteriaCondition">select<if test="distinct">distinct</if><include refid="Base_Column_B2cOrder" />from b2c_order<include refid="Base_Where_B2cOrder" /><if test=" null!= orderByClause">order by #{orderByClause}</if><if test="null!=start and null!=pageSize">limit #{start}, #{pageSize}</if></select>//结果映射列<resultMap id="Base_Result_B2cOrder" type="com.source.model.B2cOrderModel">        <result property="model参数名" column="对应的数据库字段"/></resultMap>//字段列<sql id="Base_Column_B2cOrder">需要查询出的数据库字段        </sql>//查询条件<sql id="Base_Where_B2cOrder">    <trim prefix="where" prefixOverrides="and|or">    <if test="null!=condition">        <if test="null!=condition.参数字段名 and ''!=condition.参数字段名">         and 数据库字段名= #{condition.参数字段名}        </if>        </if>        </trim></sql>//分页过程---查询条件封装对象CriteriaConditionimport java.util.HashMap;/** * 公用条件查询类 */public class CriteriaCondition{    /**     * 存放条件查询值     */    Map<String, Object> condition;    /**     * 是否相异     */    boolean distinct;    /**     * 排序字段     */    String orderByClause;    /**     * 分页起始页     */    Integer start;    /**     * 分页数值     */    Integer pageSize;    public CriteriaCondition()    {        super();        condition = new HashMap<String, Object>();    }    public CriteriaCondition(String orderByClause, Integer start, Integer pageSize)    {        this.distinct = true;        this.orderByClause = orderByClause;        this.start = start;        this.pageSize = pageSize;        condition = new HashMap<String, Object>();    }    public CriteriaCondition(boolean distinct, String orderByClause, Integer start, Integer pageSize)    {        this.distinct = distinct;        this.orderByClause = orderByClause;        this.start = start;        this.pageSize = pageSize;        condition = new HashMap<String, Object>();    }    public CriteriaCondition put(String condition, Object value)    {        this.condition.put(condition, value);        return (CriteriaCondition)this;    }    public Map<String, Object> getCondition()    {        return condition;    }    public void setDistinct(boolean distinct)    {        this.distinct = distinct;    }    public void setOrderByClause(String orderByClause)    {        this.orderByClause = orderByClause;    }    public void setStart(Integer start)    {        this.start = start;    }    public void setPageSize(Integer pageSize)    {        this.pageSize = pageSize;    }}//构造前台分页显示public class PageNavUtil{    public static String getBluePageNavHtml(int currentPage, int pageSize, int totalRows, int showNums)    {        StringBuilder pageNavHtml = new StringBuilder();        if (showNums < 1)        {            showNums = 5;        }        // 计算总页数        int totalPage = (int)Math.ceil(totalRows / Double.parseDouble(String.valueOf(pageSize)));        // 计算中间页码数字        int midNum = (int)Math.ceil(Double.parseDouble(String.valueOf(showNums)) / 2);        int beginNum = currentPage <= midNum ? 1 : currentPage - midNum + 1;        int endNum = beginNum + showNums - 1;        if (endNum > totalPage)        {            endNum = totalPage;        }        // 至少有1页以上 才显示分页导航        if (totalPage > 1)        {            // 需要显示 首页            if (currentPage > 1)            {                pageNavHtml.append("<a href='?page=1'> 首页</a>");            }            // 如果有上一页            if (currentPage > beginNum)            {                pageNavHtml.append("<a href='?page=" + (currentPage - 1) + "'> < </a>");            }            else            {                pageNavHtml.append("<a href='javascript:void(0)' class='disabled'> < </a>");            }            for (int i = beginNum; i <= endNum; i++)            {                if (i == currentPage)                {                    pageNavHtml.append("<a href='javascript:void(0)' class='this'>" + currentPage + "</a>");                }                else                {                    pageNavHtml.append("<a href='?page=" + i + "'>" + i + "</a>");                }            }            // 如果有下一页            if (currentPage < endNum)            {                pageNavHtml.append("<a href='?page=" + (currentPage + 1) + "'> > </a>");            }            else            {                pageNavHtml.append("<a href='javascript:void(0)' class='disabled'> > </a>");            }            // 需要显示 尾页            if (currentPage < totalPage)            {                pageNavHtml.append("<a href='?page=" + totalPage + "'>尾页</a>");            }        }        return pageNavHtml.toString();    }    public static String getPageNavHtml(int currentPage, int pageSize, int totalRows, int showNums)    {        StringBuilder pageNavHtml = new StringBuilder();        if (showNums < 1)        {            showNums = 5;        }        // 计算总页数        int totalPage = (int)Math.ceil(totalRows / Double.parseDouble(String.valueOf(pageSize)));        // 计算中间页码数字        int midNum = (int)Math.ceil(Double.parseDouble(String.valueOf(showNums)) / 2);        int beginNum = currentPage <= midNum ? 1 : currentPage - midNum + 1;        int endNum = beginNum + showNums - 1;        if (endNum > totalPage)        {            endNum = totalPage;        }        // 至少有1页以上 才显示分页导航        if (totalPage > 1)        {            // 需要显示 首页            if (currentPage > 1)            {                pageNavHtml.append("<a href='?page=1'> 首页</a>");            }            // 如果有上一页            if (currentPage > beginNum)            {                pageNavHtml.append("<a href='?page=" + (currentPage - 1) + "'> < </a>");            }            else            {                pageNavHtml.append("<span class='disabled'> < </span>");            }            for (int i = beginNum; i <= endNum; i++)            {                if (i == currentPage)                {                    pageNavHtml.append("<span class='current'>" + currentPage + "</span>");                }                else                {                    pageNavHtml.append("<a href='?page=" + i + "'>" + i + "</a>");                }            }            // 如果有下一页            if (currentPage < endNum)            {                pageNavHtml.append("<a href='?page=" + (currentPage + 1) + "'> > </a>");            }            else            {                pageNavHtml.append("<span class='disabled'> > </span>");            }            // 需要显示 尾页            if (currentPage < totalPage)            {                pageNavHtml.append("<a href='?page=" + totalPage + "'>尾页</a>");            }        }        return pageNavHtml.toString();    }}

  

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,487
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,903
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,736
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,487
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:8,127
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:5,289