分页查询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
- oracle分页查询demo
- 分页查询demo
- SpringData JPA查询分页demo
- SpringData JPA查询分页demo
- 【demo积累】——真分页查询
- 分页查询
- 分页查询
- 分页查询
- 分页查询
- 分页查询
- 分页查询
- 分页查询
- 分页查询
- 分页查询
- 分页查询
- 分页查询
- 分页查询
- 分页查询
- PATB1012
- unity3d 设置是否在攻击范围
- android 系统状态栏的--- 系统的沉浸式状态栏
- 【java】冒泡排序法、选择排序法、插入排序法
- 第四届 山东省ACM The number of steps (概率dp 待整理)
- 分页查询demo
- 前台传过来的json数据,解析request
- 【Java基础知识】集合概述
- Static Nested Class 和 和 Inner Class 的不同
- 【教程】小程序实现socket【workerman+thinkPHP做后端】
- 实验一
- C语言实现unix系统调用system
- MATLAB的prod函数
- centos 7 配置svn步骤和常见的问题