分页管理上增删改查那些事儿
来源:互联网 发布:如何找到淘宝卖家 编辑:程序博客网 时间:2024/05/16 05:20
查询功能
1.1 com.test.gc.controller
1.1.1 Controller.java
<span style="font-size:14px;">/** * @author JOHN * @param model 用于完成从Controller向视图的数据传送,可通过model.addAttribute(...)进行传送 * @param user * @param page * 分页查询操作 * **/@RequestMapping("list")public ModelAndView list(Model model,Pagination page,User user){/** * paramMap作为参数容器,将sql需要的条件进行封装 */Map<String,Object> paramMap=new HashMap<String,Object>();//生成空的map集合结构paramMap.put("yhbh", user.getYhbh());paramMap.put("xm", user.getXm());try {//自定义函数,完成数据分页显示和查询,由于函数对数据库底层进行了访问所以需要抛出异常this.getPagination("findUsers", paramMap, page.getPagIndex(), page.getPagCount(), model);//类似于调用findUser()函数} catch (Exception e) {e.printStackTrace();}return new ModelAndView("user/list");}</span>
项目初始访问路径:http://localhost:8080/springmvc/user/list
注:根据请求路径项目会到spring中的Controller中寻找user类映射,然后在寻找list方法映射。详细参考:
SpringMvc中Controller和view的数据交互
http://www.gfsoso.net/?q=spring+controller%E5%92%8C%E8%A7%86%E5%9B%BE%E6%95%B0%E6%8D%AE%E4%BA%A4%E4%BA%92
@RequestMapping 用法详解之地址映射
http://blog.csdn.net/walkerjong/article/details/7994326
@RequestParam @RequestBody @PathVariable 等参数绑定注解详解:
http://blog.csdn.net/walkerjong/article/details/7946109
1.1.2 BaseController.java
<span style="font-size:14px;">@SuppressWarnings({ "unchecked" })/*执行了未检查的转换时的警告,例如当使用集合时没有用泛型 (Generics)来指定集合保存的类型。*/public void getPagination(String mapperSqlId,Map<String,Object> paramMap,int pageIndex,int pageCount,Model model)throws Exception{String searchSql=this.getSqlStrByMapperId(mapperSqlId,paramMap);//获取对应的Sql语句/*分页原理代码*/pageIndex=((pageIndex<=0)?1:pageIndex);//三目运算Pagination pagBean=new Pagination();pagBean.setPagIndex(pageIndex);pagBean.setPagCount(pageCount);int dataCount=pageService.getPageDataCount(searchSql);//总条数pagBean.setDataCount(dataCount);int pagNumber=((dataCount%pageCount)==0?dataCount/pageCount:(dataCount/pageCount)+1);//总页面数pagBean.setPagNumber(pagNumber);List<Object> obj=pageService.getPageDataList(searchSql, pageIndex, pageCount);List<Object> mapObj=new ArrayList<Object>();//转换时间格式:yyyy-MM-dd HH:mm:ss/*系统时间统一*/for (int i = 0; i<obj.size(); i++) { Map<String, Object> mapParam=((Map<String, Object>)obj.get(i)); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Iterator it = mapParam.entrySet().iterator(); while (it.hasNext()) { Map.Entry entry = (Map.Entry) it.next(); Object key = entry.getKey(); Object value = entry.getValue(); if(value instanceof Date){ mapParam.put(key.toString().toLowerCase(), sdf.format(value)); } } mapObj.add(mapParam);}model.addAttribute("list", mapObj);model.addAttribute("total", dataCount);model.addAttribute("page", pagBean);}</span>
1.2 WebRoot\pages\user\list.jsp
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%><%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><c:set var="basePath" value="${pageContext.request.contextPath}"/><html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><meta http-equiv="X-UA-Compatible" content="IE=9" /><title>test</title><meta http-equiv='Content-Type' content='text/html; charset=utf-8'/><meta http-equiv="X-UA-Compatible" content="IE=9" /><script src="${basePath}/pub/js/jquery-1.9.1.min.js" type="text/javascript"></script><link rel="stylesheet" type="text/css" href="${basePath}/pub/tag2/default.css" /><!-- table样式 --><link rel="stylesheet" type="text/css" href="${basePath}/pub/css/page.css" /><!-- 分页样式 --><script src="${basePath}/pub/js/page.js" type="text/javascript"></script><!-- 分页JS --><script src="${basePath}/pub/js/public.js" type="text/javascript"></script><!-- 公共JS --><script src="${basePath}/pub/ckeditor/ckeditor.js" type="text/javascript"></script><!-- 大字段控件 --><script language="JavaScript" type="text/javascript" src="${basePath}/pub/WdatePicker/WdatePicker.js"></script><script language="JavaScript" type="text/javascript" src="${basePath}/pub/WdatePicker/date.js"></script><script src="${basePath}/pub/last-jquery/jquery.min.js" type="text/javascript"></script><script src="${basePath}/pub/js/jquery.meerkat.1.3.js" type="text/javascript"></script><script src="${basePath}/pub/js/jquery.fixedtableheader.min.js" type="text/javascript"></script><link rel="stylesheet" type="text/css" href="${basePath}/pub/WdatePicker/skin/WdatePicker.css" /><script>$(document).ready(function(){$("#addButton").click(function(){window.location.href="add";//跳转页面});});var isc = "";function getWids(){isc="";var idsstr = ""; $("input[name=chkId]").each(function(){ //遍历table里的全部checkbox idsstr += $.trim($(this).val()) + ","; //获取所有checkbox的值 if($(this).attr("checked")) //如果被选中 isc += $.trim($(this).val()) + ","; //获取被选中的值 }); if(idsstr.length > 0) //如果获取到 idsstr = idsstr.substring(0, idsstr.length - 1); //把最后一个逗号去掉 if(isc.length > 0) //如果获取到 isc = isc.substring(0, isc.length - 1); //把最后一个逗号去掉}function upButton1(){getWids();if(isc==""){alert("请选择一条数据");return;}if(isc.indexOf(",")!=-1){alert("只能选择一个!");return;}$("#Form1").attr("action","update?wid="+isc);//$("#Form1").action="update";$("#Form1").submit();}function upButton2(){getWids();if(isc==""){alert("请选择一条数据");return;}$.ajax({type: "post", dataType:'json', //接受数据格式 cache:false, data:{"wid":isc}, //传递的数据 url: "delUser", //访问的地址 beforeSend: function(XMLHttpRequest){ }, success: function(data){ alert("删除成功!"); }, error: function(){ //请求出错处理 alert("Error!"); } }); $("#Form1").submit();}</script></head><body><form action="list" method="post" id="Form1" name="Form1"><table width="100%" cellpadding="0" cellspacing="0"><tr><td style="padding-left:30px;"><input type="button" id="delButton" name="delButton" class="showButton" onclick="upButton2()"value="删除"/><input type="button" id="queryButton" name="queryButton" onclick="queryWindow()" class="showButton" value="查询"/><input type="button" id="addButton" name="addButton" value="增加" class="showButton"/><input type="button" id="upButton" name="upButton" onclick="upButton1()" value="修改" class="showButton"/></td><td><div class='sabrosus'><c:choose> <c:when test="${page.pagIndex==1 || page.pagIndex==0}"><span class='current'>首页</span><span class='current'>上一页</span></c:when><c:otherwise><a href='#' onClick='firstPage()'>首页</a><a href='#' onClick='privePage()'>上一页</a></c:otherwise></c:choose><c:choose><c:when test="${page.pagIndex==page.pagNumber || page.pagNumber==0}"><span class='current'>下一页</span><span class='current'>尾页</span></c:when><c:otherwise><a href='#' onClick='nextPage()' >下一页</a><a href='#' onClick='lastPage(${page.pagNumber})'>尾页</a></c:otherwise></c:choose> 当前第 <select id='pagIndex' name='pagIndex' style='width: 58px'><c:forEach begin="1" end="${page.pagNumber}" var="i"><option value='${i}'>${i}</option></c:forEach></select> 页/共 ${page.pagNumber} 页,${page.dataCount}条记录 每页 <select id='pagCount' name='pagCount' style='width: 58px'><option value='5'>5</option><option value='10'>10</option><option value='20'>20</option><option value='40'>40</option><option value='100'>100</option><option value='500'>500</option><option value='1000'>1000</option></select> 条 <script>checkPageOption('${page.pagIndex}','${page.pagCount}')</script></td></tr></table><table class="tableContent_table"><tr class="tableContent_table_thead_tr"><th style="width:50px;"><a style='cursor: hand' onclick="sel_all()">选择</a></th><th><a style='cursor:hand' onclick=reOrder('')>用户编号</a></th><th><a style='cursor:hand' onclick=reOrder('')>姓名</a></th><th><a style='cursor:hand' onclick=reOrder('')>部门</a></th><th><a style='cursor:hand' onclick=reOrder('')>是否使用</a></th><th><a style='cursor:hand' onclick=reOrder('')>移动电话</a></th><th><a style='cursor:hand' onclick=reOrder('')>固定电话</a></th><th><a style='cursor:hand' onclick=reOrder('')>电子邮件</a></th><th><a style='cursor:hand' onclick=reOrder('')>用户类型</a></th></tr><c:forEach items="${list}" var="data" varStatus="j"><tr><td align='center'><input type='checkbox' name='chkId' value="${data.WID}"/></td><td align='center'>${data.YHBH }</td><td align='center'>${data.XM}</td><td align='center'>${data.BMBH }</td><td align='center'><c:choose> <c:when test="${data.SFSY ==1}">是 </c:when> <c:otherwise>否 </c:otherwise> </c:choose> </td><td align='center'>${data.YDDH }</td><td align='center'>${data.GDDH }</td><td align='center'>${data.DZYJ }</td><td align='center'>${data.YHLX }</td></tr></c:forEach></table><div id="light" class="white_content"><table align="center" cellspacing="0" cellpadding="0" border="0" class="showTable"><tr><th><a style='cursor:hand' onclick=reOrder('')>用户编号</a></th><td><input name="yhbh" type="text"/></td><th><a style='cursor:hand' onclick=reOrder('')>姓 名</a></th><td><input name="xm" type="text"/></td></tr><!--<tr><th><a style='cursor:hand' onclick=reOrder('')>部 门</a></th><td><input name="bmbh" type="text"/></td><th><a style='cursor:hand' onclick=reOrder('')>是否使用</a></th><td><input name="sfsy" type="text"/></td></tr><tr><th><a style='cursor:hand' onclick=reOrder('')>移动电话</a></th><td><input name="yddh" type="text"/></td><th><a style='cursor:hand' onclick=reOrder('')>固定电话</a></th><td><input name="gddh" type="text"/></td></tr><tr><th><a style='cursor:hand' onclick=reOrder('')>电子邮件</a></th><td><input name="dzyj" type="text"/></td><th><a style='cursor:hand' onclick=reOrder('')>用户类型</a></th><td><input name="yhlx" type="text"/></td></tr>--><tr><td align="center" colspan="4"><input type="button" class="showButton" value="查 询 " onclick="query()"/> <input type="button" class="showButton" value="关 闭 " onclick="closeQuery()"/></td></tr></table></div><div id="fade" class="black_overlay"></div></form></body></html>
1.3 com.test.gc.service
public List<User> findUsers();
1.4 com.test.gc.serviceimpl
@Overridepublic List<User> findUsers() {return userDao.findUsers();}
1.5 com.test.gc.user
package com.test.gc.model;public class User {private String wid;private String yhbh;//不能修改private String xm;private String mm;private String bmbh;private String sfsy;private String yddh;private String gddh;private String yhlx;private String bz;public String getWid() {return wid;}public void setWid(String wid) {this.wid = wid;}public String getYhbh() {return yhbh;}public void setYhbh(String yhbh) {this.yhbh = yhbh;}public String getXm() {return xm;}public void setXm(String xm) {this.xm = xm;}public String getMm() {return mm;}public void setMm(String mm) {this.mm = mm;}public String getBmbh() {return bmbh;}public void setBmbh(String bmbh) {this.bmbh = bmbh;}public String getSfsy() {return sfsy;}public void setSfsy(String sfsy) {this.sfsy = sfsy;}public String getYddh() {return yddh;}public void setYddh(String yddh) {this.yddh = yddh;}public String getGddh() {return gddh;}public void setGddh(String gddh) {this.gddh = gddh;}public String getYhlx() {return yhlx;}public void setYhlx(String yhlx) {this.yhlx = yhlx;}public String getBz() {return bz;}public void setBz(String bz) {this.bz = bz;}}
1.6 mappers/UserMapper
<select id="findUsers" parameterType="java.util.Map" resultType="UserR">select z.wid,z.yhbh,z.xm,(select bm.bmmc from zc_bm bm where z.bmbh=bm.bmbh) as bmbh,z.sfsy,(select sjmc from zc_sjzdbm where zdbh='YHLX' and sjbh=yhlx) as yhlxfrom zc_yh z where 1=1 <if test="yhbh!=null">and yhbh like '%${yhbh}%'</if><if test="xm!=null">and xm like '%${xm}%'</if></select>
0 0
- 分页管理上增删改查那些事儿
- Web图书管理系统---分页、上传、下载、增删改查
- DataList 增删改查、分页
- EasyUI 增删改查、分页
- 商品增删改查&分页
- 数据库那些事--greenDAO增删查改
- 数据库连接及增删改查那些事
- gridview 增删改查 分页 sqlserver数据库
- ThinkPHP增删改查 搜索 分页
- .NET MVC 分页以及增删查改
- ado.net EF 增删改查、分页
- Android QLite 分页查询 增删改查
- CoreData 条件增删改查,排序,分页
- Yii的增删改查-分页
- laraver的增删改查-分页
- datagrid表格分页及增删改查
- yii增删改查搜索分页
- 关于分页及增删改查
- 互联型嵌入式应用ARM选型分享
- 简单JS传出参数例子
- Java和C++的区别
- netlink---Linux下基于socket的内核和上层通信机制(上)
- 线程各种状态
- 分页管理上增删改查那些事儿
- JS与iOS之间的通信
- java webservice 注解
- redis之AOF持久化机制
- 一个非常好的PDF转TXT使用流程
- UILabel的相关属性设置
- CSS3+less实验(1)——gradient
- [leecode] Longest Common Prefix
- Reverse Linked List