分页查询demo

来源:互联网 发布:大数据在小城市的应用 编辑:程序博客网 时间:2024/05/20 14:17

dalgen tables代码片段

<!-- 查询商品數量 --><operation name="selectOrderCount" resultClass="int"><extraparams><param name="startTime" javatype="java.util.Date" /><param name="endTime" javatype="java.util.Date" /><param name="orderId" javatype="java.lang.String" /><param name="cell" javatype="java.lang.String" /><param name="rcell" javatype="java.lang.String" /><param name="payStatus" javatype="java.lang.String" /><param name="orderStatus" javatype="java.lang.String" /><param name="orderPerson" javatype="java.lang.String" /><param name="payType" javatype="java.lang.String" /></extraparams><sql>select count(DISTINCT ORDER_ID) from jiume_order</sql><sqlmap><![CDATA[   select count(DISTINCT ORDER_ID) from jiume_order   <dynamic prepend="where">                <isNotEmpty property="startTime" prepend="and">            ${cdata-start}             GMT_MODIFIED >#startTime#             ${cdata-end}          </isNotEmpty>        <isNotEmpty property="endTime" prepend="and">             ${cdata-start}             GMT_MODIFIED <=#endTime#                ${cdata-end}        </isNotEmpty>                <isNotEmpty property="orderId" prepend="and">                    ORDER_ID = #orderId#                </isNotEmpty>                <isNotEmpty property="cell" prepend="and">                    CELL = #cell#                </isNotEmpty>                <isNotEmpty property="rcell" prepend="and">                    R_CELL = #rcell#                </isNotEmpty>    <isNotEmpty property="payStatus" prepend="and">                    PAY_STATUS = #payStatus#                </isNotEmpty>                <isNotEmpty property="orderStatus" prepend="and">                    ORDER_STATUS = #orderStatus#                </isNotEmpty>                <isNotEmpty property="orderPerson" prepend="and">                    ORDER_PERSON = #orderPerson#                </isNotEmpty>                <isNotEmpty property="payType" prepend="and">                    PAY_TYPE = #payType#                </isNotEmpty>            </dynamic>           ]]></sqlmap></operation>

controller代码片段

/** * 訂單訊息查詢 *  * @param request * @param modelMap * @return */@RequestMapping("/orderMng.html")public String orderMng(HttpServletRequest request, ModelMap modelMap) {System.out.println("-----------进入订单管理页面-----------");String start1 = request.getParameter("startTime");// 开始时间String end1 = request.getParameter("endTime");// 结束时间String orderId = request.getParameter("orderId");// 訂單號String cell = request.getParameter("cell");// 發貨人電話String rcell = request.getParameter("rCell");// 收貨人電話String payStatus = request.getParameter("payStatus");// 支付狀態String orderStatus = request.getParameter("orderStatus");// 發貨狀態String orderPerson = request.getParameter("orderPerson");// 订购人姓名String payType = request.getParameter("payType");// 支付方式Date startTime = null;Date endTime = null;if (StringUtils.isNotBlank(start1)) {try {startTime = DateUtils.parseDate(start1, DateUtils.webFormat);} catch (ParseException e) {// TODO Auto-generated catch blocke.printStackTrace();}}if (StringUtils.isNotBlank(end1)) {try {endTime = DateUtils.parseDate(end1, DateUtils.webFormat);} catch (ParseException e) {// TODO Auto-generated catch blocke.printStackTrace();}}int totalItems = orderDAO.selectOrderCount(startTime, endTime, orderId, cell, rcell, payStatus, orderStatus, orderPerson, payType);Map<String, Integer> pageData = getPageData(request);List<OrderDO> orderList = orderDAO.selectAllOrder(startTime, endTime, orderId, cell, rcell, payStatus, orderStatus, orderPerson, payType, pageData.get(OFFSET), pageData.get(PAGE_SIZE_STR));List<OrderDO> list = new ArrayList<OrderDO>();String orderIds = null;for (int i = 0; i < orderList.size(); i++) {if (!StringUtils.equals(orderList.get(i).getOrderId(), orderIds)) {list.add(orderList.get(i));};orderIds = orderList.get(i).getOrderId();}modelMap.put("orderList", orderList);modelMap.put("list", list);modelMap.put("startTime", start1);modelMap.put("endTime", end1);modelMap.put("orderId", orderId);modelMap.put("cell", cell);modelMap.put("rCell", rcell);modelMap.put("payStatus", payStatus);modelMap.put("orderStatus", orderStatus);modelMap.put("orderPerson", orderPerson);modelMap.put("payType", payType);modelMap.put("totalPages",calculatePage(totalItems, pageData.get(PAGE_SIZE_STR)));modelMap.put(CURRENTPAGE, pageData.get(CURRENTPAGE));modelMap.put("totalItems", totalItems);request.setAttribute("page", modelMap);return "html/orderMng";}

AbstractController代码片段

/** * onway.com Inc. * Copyright (c) 2016-2016 All Rights Reserved. */package com.onway.web.controller;import java.io.File;import java.text.DecimalFormat;import java.util.HashMap;import java.util.Map;import java.util.regex.Pattern;import javax.annotation.Resource;import javax.crypto.Cipher;import javax.crypto.spec.SecretKeySpec;import javax.servlet.http.HttpServletRequest;import org.apache.log4j.Logger;import org.springframework.web.multipart.MultipartFile;import com.onway.common.lang.ArrayUtils;import com.onway.common.lang.NumberUtils;import com.onway.common.lang.StringUtils;import com.onway.jiume.common.dal.daointerface.AddrtypeDAO;import com.onway.jiume.common.dal.daointerface.AllParameterDAO;import com.onway.jiume.common.dal.daointerface.CartDAO;import com.onway.jiume.common.dal.daointerface.OrderDAO;import com.onway.jiume.common.dal.daointerface.PetDAO;import com.onway.jiume.common.dal.daointerface.PetTagDAO;import com.onway.jiume.common.dal.daointerface.PettypeDAO;import com.onway.jiume.common.dal.daointerface.ProductDAO;import com.onway.jiume.common.dal.daointerface.ProductParameterDAO;import com.onway.jiume.common.dal.daointerface.ProductSaleDAO;import com.onway.jiume.common.dal.daointerface.ProductTypeDAO;import com.onway.jiume.common.dal.daointerface.PublishDAO;import com.onway.jiume.common.dal.daointerface.RecordDAO;import com.onway.jiume.common.dal.daointerface.SigninDAO;import com.onway.jiume.common.dal.daointerface.UserDAO;import com.onway.jiume.common.service.exception.ErrorException;import com.onway.jiume.common.util.FileUtils;import com.onway.jiume.common.util.ImageUploadUtil;import com.onway.jiume.core.cache.SysConfigCacheManager;import com.onway.jiume.core.cache.code.CodeGenerateComponent;import com.onway.jiume.core.exception.ParamErrorException;import com.onway.platform.common.configration.ConfigrationFactory;import com.onway.web.controller.template.ControllerTemplate;/** * 控制器基类 *  * @author guangdong.li * @version $Id: AbstractController.java, v 0.1 17 Feb 2016 11:18:55 guangdong.li Exp $ */public class AbstractController {    /**  */    private static final Pattern   SPLIT_PATTERN = Pattern.compile("_");    /** logger */    public static final Logger    logger        = Logger.getLogger(AbstractController.class);        protected static final String EXCEPTION_MESSAGE = "服务异常,请稍后尝试";        protected static String       PAGE_NUM_STR      = "pageNum";    protected static String       PAGE_SIZE_STR     = "pageSize";    protected static int          DEFAULT_PAGE_SIZE = 10;    protected static int          DEFAULT_PAGE_NUM  = 1;    protected static final String CURRENTPAGE       = "currentPage";    protected static final String OFFSET            = "offset";    protected static final String LIMIT             = "limit";    protected static final String PAGE_FLAG         = "page";        protected static final String ADVANCE_LEVEL         = "進階款";        protected static final String NOMAL_LEVEL         = "普通款";        protected static final String   TOKEN_ERROR                  = "token不正确";    protected static final String   USER_ID                      = "userId";    protected static final String   TOKEN                        = "token";    protected static final String   APP_TYPE                     = "appType";    protected static final String   VERSION                      = "version";    protected static final String   SIGN_T                       = "sign_t";    protected static final String   SIGN                         = "sign";    protected static final String   PAGE_NUM                     = "pageNum";    protected static final String   TIME                         = "stime";    protected static final String   CHECK_CODE                   = "checkCode";    protected static final String   SIGN_SEED                    = "onway888888";    protected static final String   PROD_CODE                    = "prodCode";    protected static final int      PAGE_NUM_DIGIT               = 1;    protected static final int      PAGE_SIZE_DIGIT              = 10;    protected static final String   TRANSCODING_ERROR            = "编码方式转型异常";    protected static final String   UPLOAD_SUCCESS               = "上传成功";    protected static final String   UPLOAD_ERROR                 = "上传异常";    protected DecimalFormat         dfZero                       = new DecimalFormat("0");    protected DecimalFormat         dfDigit                      = new DecimalFormat("0.00");    private static final String PAGE_NO                          = "pageNo";    private static final String PAGE_SIZE                        = "pageSize";        private static final String IMAGE_FILE           = ConfigrationFactory.getConfigration().getPropertyValue("jiume_post_upload_image");    private static final String IMAGE_PATH           = ConfigrationFactory.getConfigration().getPropertyValue("jiume_post_image");    /****************************所有的Client********************************/    //    @Resource//    protected AccountInfoQueryServiceClient   accountInfoQueryServiceClient;            /****************************所有的Component(组成)********************************/    @Resource    protected ControllerTemplate      controllerTemplate;    @Resource    protected CodeGenerateComponent   codeGenerateComponent;    @Resource    protected SysConfigCacheManager   sysConfigCacheManager;        /****************************所有的DAO********************************/        @Resource    protected UserDAO userDAO;        @Resource    protected PetDAO   petDAO;        @Resource    protected ProductDAO   productDAO;        @Resource    protected ProductParameterDAO productParameterDAO;        @Resource    protected OrderDAO orderDAO;        @Resource    protected ProductTypeDAO productTypeDAO;        @Resource    protected AllParameterDAO allParameterDAO;        @Resource    protected CartDAO cartDAO;        @Resource    protected PetTagDAO petTagDAO;        @Resource    protected SigninDAOsigninDAO;        @Resource    protected AddrtypeDAO addrtypeDAO;        @Resource    protected PettypeDAO pettypeDAO;        @Resource    protected RecordDAO recordDAO;        @Resource    protected ProductSaleDAO productSaleDAO;        @Resource    protected PublishDAO publishDAO;    //    @Resource//    protected SmsSender SmsSender;    /**     * 获取页码     * @param request     * @return     */    public int adjustPageNo(HttpServletRequest request){        String pageNo = request.getParameter(PAGE_NO);        if(pageNo == null || !NumberUtils.isDigits(pageNo))            return PAGE_NUM_DIGIT;        return Integer.parseInt(pageNo) < 1 ? PAGE_NUM_DIGIT : Integer.parseInt(pageNo);    }    /**     * 获取每页显示条数     * @param request     * @return     */    public int adjustPageSize(HttpServletRequest request){        String pageSize = request.getParameter(PAGE_SIZE);        if(pageSize == null || !NumberUtils.isDigits(pageSize))            return PAGE_SIZE_DIGIT;        return Integer.parseInt(pageSize) < 1 ? PAGE_SIZE_DIGIT : Integer.parseInt(pageSize);    }    /**     * 转换Double     * @param d     * @return     */    public Double adjustDouble(String d){        if(d == null)            return null;        if(NumberUtils.isNumber(d)){            return Double.valueOf(d);        }        return null;    }    /**     * 获取分页数据     *      * @param request     */    protected Map<String, Integer> getPageData(final HttpServletRequest request) {        String page = request.getParameter(CURRENTPAGE);        String pageSize = request.getParameter(PAGE_SIZE_STR);        // 分页页数        int pagesize = StringUtils.hasLength(pageSize) && StringUtils.isNumeric(pageSize) ? Integer            .parseInt(pageSize) : DEFAULT_PAGE_SIZE;        int currentPage = 1;        int offset = 0;        if (StringUtils.hasLength(page) && StringUtils.isNumeric(page)) {            currentPage = Integer.parseInt(page);            offset = (currentPage - 1) * pagesize;        }        Map<String, Integer> pageMap = new HashMap<String, Integer>();        pageMap.put(PAGE_SIZE_STR, pagesize);        pageMap.put(CURRENTPAGE, currentPage);        pageMap.put(OFFSET, offset);        pageMap.put(LIMIT, (currentPage) * pagesize);        return pageMap;    }    /**     * 计算页数     *      * @param totalItems     * @return     */    protected int calculatePage(int totalItems, int pagesize) {        int totalPages = 0;        if (0 != totalItems && totalItems > pagesize) {            totalPages = 0 == totalItems % pagesize ? totalItems / pagesize : totalItems / pagesize                                                                              + 1;        } else if (0 != totalItems && totalItems <= pagesize) {            totalPages = 1;        }        return totalPages;    }    /**     * 获取客户端访问ip地址     * @param request     * @return     */    public String getIpAddr(HttpServletRequest request) {        String ip = (String) request.getParameter("loginIP"); // 兼容PC端请求IP记录        if (StringUtils.isBlank(ip)) {            ip = request.getHeader("X-Real-IP");        }        if (StringUtils.isBlank(ip)) {            ip = request.getHeader("x-forwarded-for");        }        if (StringUtils.isBlank(ip) || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {            ip = request.getHeader("Proxy-Client-IP");        }        if (StringUtils.isBlank(ip) || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {            ip = request.getHeader("WL-Proxy-Client-IP");        }        if (StringUtils.isBlank(ip) || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {            ip = request.getRemoteAddr();        }        return ip;    }    /**     *      * @param request     * @return     */    protected String getUserId(HttpServletRequest request) {        String key = "AdD53fE9BCB5E6Db";        String sign = request.getHeader("Sign");        if (StringUtils.isEmpty(sign)) {            sign = request.getParameter("Sign");        }        if (StringUtils.isEmpty(sign)) {            return "";        }        //hellomyson_8201409090003422_1370****031_acabd0a7c1f943b5a5f1ec2b50b8adc9        String text = decode(sign, key);        String[] arrays = SPLIT_PATTERN.split(text, 4);        if (arrays == null | arrays.length != 4) {            return "";        }        String userId = arrays[1];        if (StringUtils.isBlank(userId)) {            return "";        }        return userId;    }    /**     * AES解码     *      * @param sign 加密串     * @param key 秘钥     * @return     */    public String decode(String sign, String key) {        if (StringUtils.isEmpty(sign)) {            return "";        }        try {            SecretKeySpec keyspec = new SecretKeySpec(key.getBytes(), "AES");            Cipher cipher = Cipher.getInstance("AES/ECB/NoPadding");            cipher.init(Cipher.DECRYPT_MODE, keyspec);            byte[] b = cipher.doFinal(org.apache.commons.codec.binary.Base64.decodeBase64(sign));            return new String(b);        } catch (Exception e) {            logger.error("", e);        }        return "";    }    public String encode(String sign, String key) {        if (StringUtils.isEmpty(sign)) {            return "";        }        try {            SecretKeySpec keyspec = new SecretKeySpec(key.getBytes(), "AES");            Cipher cipher = Cipher.getInstance("AES/ECB/NoPadding");            int blockSize = cipher.getBlockSize();            byte[] dataBytes = sign.getBytes();            int plaintextLength = dataBytes.length;            if (plaintextLength % blockSize != 0) {                plaintextLength = plaintextLength + (blockSize - (plaintextLength % blockSize));            }            byte[] plaintext = new byte[plaintextLength];            System.arraycopy(dataBytes, 0, plaintext, 0, dataBytes.length);            cipher.init(Cipher.ENCRYPT_MODE, keyspec);            byte[] b = cipher.doFinal(plaintext);            return org.apache.commons.codec.binary.Base64.encodeBase64String(b);        } catch (Exception e) {            logger.error("", e);        }        return "";    }    /**     *      * 是否小于指定版本 (向后兼容)     * @param currentVersion     * @param oldVersion     * @param platform     * @return     */    public boolean isSupport(String currentVersion, String oldVersion) {        try {            return compareVersion(currentVersion, oldVersion) < 0;        } catch (Exception e) {            logger.error("APP版本向下兼容判断", e);        }        return false;    }    /**     * 比较版本高低,version1 < version2 返回-1 ,等于返回0,大于返回1     *      * @param version1     * @param version2     * @return     * @throws Exception     */    public static int compareVersion(String version1, String version2) {        if (version1 == null || version2 == null) {            throw new ParamErrorException("版本号格式错误");        }        String[] versionArray1 = version1.split("\\.");        String[] versionArray2 = version2.split("\\.");        int idx = 0;        int minLength = Math.min(versionArray1.length, versionArray2.length);//取最小长度值          int diff = 0;        while (idx < minLength               && (diff = versionArray1[idx].length() - versionArray2[idx].length()) == 0//先比较长度                 && (diff = versionArray1[idx].compareTo(versionArray2[idx])) == 0) {//再比较字符              ++idx;        }        //如果已经分出大小,则直接返回,如果未分出大小,则再比较位数,有子版本的为大;          diff = (diff != 0) ? diff : versionArray1.length - versionArray2.length;        return diff;    }        /**     *  文件上传(图片上传)      * @param txtFile     * @param uploadRealpath     * @param filePath     * @return     */    public  String uploadImage(MultipartFile txtFile, String uploadRealpath, String baseUrl) {        // 检查照片是否存在        if (txtFile.getOriginalFilename() == null || "".equals(txtFile.getOriginalFilename())) {            throw new ErrorException("图片后缀名为空");        }        // 照片上传        File file = ImageUploadUtil.getFile(txtFile, uploadRealpath, "");        // 获取文件访问地址        String visitPath = uploadRealpath+file.getName();        return visitPath;    }         /*     * 上传图片      */     public void uploadFile(MultipartFile image, String absolutePath) throws Exception {         File userAuthImage = new File(absolutePath);         if (image == null || ArrayUtils.isEmpty(image.getBytes())) {         }         FileUtils.writeByteArrayToFile(userAuthImage, image.getBytes());     }          //檢查的同時獲取     protected String getParameterCheck(final HttpServletRequest request,String key){     String Value = request.getParameter(key);     if(null==Value||Value.equals("")){     Value=null;  }     return Value;     }    }

page.html

<meta charset="UTF-8"><table width="100%" border=0 align=center cellpadding=0 cellspacing=0 class="pageInfo" style="margin:5px 0;"s>   <tr>     <td align="right">          #if($page)#if($page.totalItems && $page.totalItems > 0)共 $page.totalItems 条,当前第 $!page.currentPage 页,共 $!page.totalPages 页  |     #if($page.currentPage==1)               首页   上一页   #else      <a href ="javascript:gotoPage(1,'$!formName')">首页</a>      #set($prePage=$page.currentPage - 1)  <a href = "javascript:gotoPage($prePage,'$!formName')">上一页</a>   #end      #if($page.currentPage==$page.totalPages)             下一页  尾页   #else     #set($nextPage=$page.currentPage + 1) <a href = "javascript:gotoPage($nextPage,'$!formName')" >下一页</a> <a href ="javascript:gotoPage($page.totalPages,'$!formName')">尾页</a>   #end      转到第 <select id ="gotoPage" name="gotoPage" onchange="gotoPages('$!formName')" class="button button-tiny"> #foreach($velocityCount in [1..$page.totalPages] )   #if($page.currentPage == $velocityCount)     <option selected value='$velocityCount'>$velocityCount</option>   #else     <option value='$velocityCount'>$velocityCount</option>    #end#end       </select> 页    #end#end  </td>   </tr> </table><script type="text/javascript">function gotoPage(pageNum,formName){formName = formName || 'mainForm';var frm = document.getElementById(formName);frm.currentPage.value = pageNum;frm.submit();}function gotoPages(formName){     var pages = document.getElementById("gotoPage").value; if(pages < 0 || pages == "") pages = 0; if(isNaN(pages)){    alert("请输入数字!");document.getElementById("gotoPage").value="go";return false; }  document.getElementById("currentPage").value = pages; var frm = document.getElementById(formName); frm.submit();}</script>

html里引用page.html的代码片段

<div class="fn-mt7">#set ($formName = "formName")#parse('/html/page.html')</div><div style="height: 200px;"></div>


0 0
原创粉丝点击