刚接触hive,不知道在项目中如何连接hive分页查询一张表的数据,最好有详细代码或小案例,急需!!! 谢谢
2条回答 默认 最新
- grape927 2017-05-27 01:54关注
@RequestMapping(value = "/list") public ModelAndView list(Page page, HttpServletRequest request) throws Exception { ModelAndView mv = this.getModelAndView(); PageData pd = this.getPageData(); // 获取request请求的参数 相当于Map String name = pd.getString("name"); if (StringUtils.isNotBlank(name)) { name = name.trim(); pd.put("name", name); } String num = pd.getString("num"); if (StringUtils.isNotBlank(num)) { num = num.trim(); pd.put("storeNum", num); } page.setPd(pd); // 数据库总的数据总条数 int totalResult = 0; if(page.getTotalResult() < 1) { totalResult = storeService.getTotalCount(pd); } else { totalResult = page.getTotalResult(); } // 当前页 int currentPage = 1; // 每页多少条数据 int showCount = 9; if (pd.getString("page.currentPage") != null) { currentPage = Integer.valueOf(pd.getString("page.currentPage")); currentPage = currentPage < 1 ? 1 : currentPage; } if (pd.getString("page.showCount") != null) { showCount = Integer.valueOf(pd.getString("page.showCount")); } // 总页数 int totalPage;// =(totalRecords+limitPage-1)/limitPage; if (totalResult <= showCount) { totalPage = 1; } else if ((totalResult % showCount) == 0) { totalPage = totalResult / showCount; } else { totalPage = (totalResult / showCount) + 1; } page.setTotalResult(totalResult); page.setCurrentPage(currentPage); page.setTotalPage(totalPage); page.setShowCount(showCount); int start = 1; int end = 0; if (currentPage == 1) { if (totalResult <= showCount) { end = totalResult; } else { end = showCount * currentPage; } } else if (currentPage > 1) { start = showCount * (currentPage - 1); end = showCount * currentPage; } mv.addObject("page", page); mv.addObject("storeList", storeService.getList(pd, start, end)); mv.addObject("pd", pd); // 按钮权限 mv.addObject(Const.SESSION_QX, Auth.getHC()); mv.setViewName("system/list"); return mv; } public String getPageStr(Page page) { int totalResult = page.getTotalResult(); int currentPage = page.getCurrentPage(); int totalPage = page.getTotalPage(); int showCount = page.getShowCount(); boolean entityOrField = true; String pageStr = ""; StringBuffer sb = new StringBuffer(); if(totalResult>0){ sb.append(" <ul>\n"); if(currentPage==1){ sb.append(" <li><a>共<font color=red>"+totalResult+"</font>条</a></li>\n"); sb.append(" <li><input type=\"number\" value=\"\" id=\"toGoPage\" style=\"width:50px;text-align:center;float:left\" placeholder=\"页码\"/></li>\n"); sb.append(" <li style=\"cursor:pointer;\"><a onclick=\"toTZ();\" class=\"btn btn-mini btn-success\">跳转</a></li>\n"); sb.append(" <li><a>首页</a></li>\n"); sb.append(" <li><a>上页</a></li>\n"); }else{ sb.append(" <li><a>共<font color=red>"+totalResult+"</font>条</a></li>\n"); sb.append(" <li><input type=\"number\" value=\"\" id=\"toGoPage\" style=\"width:50px;text-align:center;float:left\" placeholder=\"页码\"/></li>\n"); sb.append(" <li style=\"cursor:pointer;\"><a onclick=\"toTZ();\" class=\"btn btn-mini btn-success\">跳转</a></li>\n"); sb.append(" <li style=\"cursor:pointer;\"><a onclick=\"nextPage(1)\">首页</a></li>\n"); sb.append(" <li style=\"cursor:pointer;\"><a onclick=\"nextPage("+(currentPage-1)+")\">上页</a></li>\n"); } int showTag = 5;//分页标签显示数量 int startTag = 1; if(currentPage>showTag){ startTag = currentPage-1; } int endTag = startTag+showTag-1; for(int i=startTag; i<=totalPage && i<=endTag; i++){ if(currentPage==i) sb.append("<li><a><font color='#808080'>"+i+"</font></a></li>\n"); else sb.append(" <li style=\"cursor:pointer;\"><a onclick=\"nextPage("+i+")\">"+i+"</a></li>\n"); } if(currentPage==totalPage){ sb.append(" <li><a>下页</a></li>\n"); sb.append(" <li><a>尾页</a></li>\n"); }else{ sb.append(" <li style=\"cursor:pointer;\"><a onclick=\"nextPage("+(currentPage+1)+")\">下页</a></li>\n"); sb.append(" <li style=\"cursor:pointer;\"><a onclick=\"nextPage("+totalPage+")\">尾页</a></li>\n"); } sb.append(" <li><a>第"+currentPage+"页</a></li>\n"); sb.append(" <li><a>共"+totalPage+"页</a></li>\n"); sb.append(" <li><select title='显示条数' style=\"width:55px;float:left;\" onchange=\"changeCount(this.value)\">\n"); sb.append(" <option value='"+showCount+"'>"+showCount+"</option>\n"); sb.append(" <option value='20'>20</option>\n"); sb.append(" <option value='30'>30</option>\n"); sb.append(" </select>\n"); sb.append(" </li>\n"); sb.append("</ul>\n"); sb.append("<script type=\"text/javascript\">\n"); //换页函数 sb.append("function nextPage(page){"); sb.append(" top.jzts();"); sb.append(" if(true && document.forms[0]){\n"); sb.append(" var url = document.forms[0].getAttribute(\"action\");\n"); sb.append(" if(url.indexOf('?')>-1){url += \"&"+(entityOrField?"currentPage":"page.currentPage")+"=\";}\n"); sb.append(" else{url += \"?"+(entityOrField?"currentPage":"page.currentPage")+"=\";}\n"); sb.append(" url = url + page + \"&" +(entityOrField?"showCount":"page.showCount")+"="+showCount+"\";\n"); sb.append(" document.forms[0].action = url;\n"); sb.append(" document.forms[0].submit();\n"); sb.append(" }else{\n"); sb.append(" var url = document.location+'';\n"); sb.append(" if(url.indexOf('?')>-1){\n"); sb.append(" if(url.indexOf('currentPage')>-1){\n"); sb.append(" var reg = /currentPage=\\d*/g;\n"); sb.append(" url = url.replace(reg,'currentPage=');\n"); sb.append(" }else{\n"); sb.append(" url += \"&"+(entityOrField?"currentPage":"page.currentPage")+"=\";\n"); sb.append(" }\n"); sb.append(" }else{url += \"?"+(entityOrField?"currentPage":"page.currentPage")+"=\";}\n"); sb.append(" url = url + page + \"&" +(entityOrField?"showCount":"page.showCount")+"="+showCount+"\";\n"); sb.append(" document.location = url;\n"); sb.append(" }\n"); sb.append("}\n"); //调整每页显示条数 sb.append("function changeCount(value){"); sb.append(" top.jzts();"); sb.append(" if(true && document.forms[0]){\n"); sb.append(" var url = document.forms[0].getAttribute(\"action\");\n"); sb.append(" if(url.indexOf('?')>-1){url += \"&"+(entityOrField?"currentPage":"page.currentPage")+"=\";}\n"); sb.append(" else{url += \"?"+(entityOrField?"currentPage":"page.currentPage")+"=\";}\n"); sb.append(" url = url + \"1&" +(entityOrField?"showCount":"page.showCount")+"=\"+value;\n"); sb.append(" document.forms[0].action = url;\n"); sb.append(" document.forms[0].submit();\n"); sb.append(" }else{\n"); sb.append(" var url = document.location+'';\n"); sb.append(" if(url.indexOf('?')>-1){\n"); sb.append(" if(url.indexOf('currentPage')>-1){\n"); sb.append(" var reg = /currentPage=\\d*/g;\n"); sb.append(" url = url.replace(reg,'currentPage=');\n"); sb.append(" }else{\n"); sb.append(" url += \"1&"+(entityOrField?"currentPage":"page.currentPage")+"=\";\n"); sb.append(" }\n"); sb.append(" }else{url += \"?"+(entityOrField?"currentPage":"page.currentPage")+"=\";}\n"); sb.append(" url = url + \"&" +(entityOrField?"showCount":"page.showCount")+"=\"+value;\n"); sb.append(" document.location = url;\n"); sb.append(" }\n"); sb.append("}\n"); //跳转函数 sb.append("function toTZ(){"); sb.append("var toPaggeVlue = document.getElementById(\"toGoPage\").value;"); sb.append("if(toPaggeVlue == ''){document.getElementById(\"toGoPage\").value=1;return;}"); sb.append("if(isNaN(Number(toPaggeVlue))){document.getElementById(\"toGoPage\").value=1;return;}"); sb.append("nextPage(toPaggeVlue);"); sb.append("}\n"); sb.append("</script>\n"); } pageStr = sb.toString(); return pageStr; } public class Page { private int showCount; //每页显示记录数 private int totalPage; //总页数 private int totalResult; //总记录数 private int currentPage; //当前页 private int currentResult; //当前记录起始索引 private boolean entityOrField; //true:需要分页的地方,传入的参数就是Page实体;false:需要分页的地方,传入的参数所代表的实体拥有Page属性 private String pageStr; //最终页面显示的底部翻页导航,详细见:getPageStr(); private PageData pd = new PageData(); private String idArray; //setter/getter 省略 }
解决 无用评论 打赏 举报
悬赏问题
- ¥15 将二维数组,按照假设的规定,如0/1/0 == "4",把对应列位置写成一个字符并打印输出该字符
- ¥15 NX MCD仿真与博途通讯不了啥情况
- ¥15 win11家庭中文版安装docker遇到Hyper-V启用失败解决办法整理
- ¥15 gradio的web端页面格式不对的问题
- ¥15 求大家看看Nonce如何配置
- ¥15 Matlab怎么求解含参的二重积分?
- ¥15 苹果手机突然连不上wifi了?
- ¥15 cgictest.cgi文件无法访问
- ¥20 删除和修改功能无法调用
- ¥15 kafka topic 所有分副本数修改