springmvc mybatis 分页 控制层及sql语句 oracle mysql easyui
* 分页条件查询用户
* @param page
* @param rows
* @param s_user
* @param response
* @return
* @throws Exception page rows total是easyui分页属性 easyui 自带 不需要定义
*/
@RequestMapping(value="/list")
public String list(@RequestParam(value="page",required=false)String page,
@RequestParam(value="rows",required=false)String rows,
User s_user,HttpServletResponse response)throws Exception{
PageBean pageBean=new PageBean(Integer.parseInt(page),Integer.parseInt(rows));
Map<String,Object> map=new HashMap<String,Object>();
map.put("userName", s_user.getUserName());
/*map.put("start", pageBean.getStart());
map.put("size", pageBean.getPageSize()); 对应是mysql*/
map.put("start", pageBean.getStartRow()); //对应是oracle
map.put("size", pageBean.getEndRow());
List<User> userList=userService.find(map);
int total=userService.getTotal(map);
JSONObject result=new JSONObject();
JSONArray jsonArray=JSONArray.fromObject(userList);
result.put("rows", jsonArray);
result.put("total", total);
ResponseUtil.write(response, result);
return null;
}
mapper.xml
<!--分页返回类型list 可以使用map User对应的是resultMap size每页的大小 oracle-->
<select id="find" resultMap="User" parameterType="Map">
select t2.* from
( select t1.*,rownum rn from t_user t1
<where>
<if test ="userName !=null and userName !='' ">
t1.userName like '%'||#{userName,jdbcType=VARCHAR}||'%'
</if>
</where>
) t2
<where>
<if test ="start !=null and start !=''">
<![CDATA[and t2.rn >=#{start}]]>
</if>
<if test ="size !=null and size !=''">
and <![CDATA[t2.rn <#{size}]]>
</if>
</where>
</select>
<!--分页返回类型list 可以使用map User对应的是resultMap size每页的大小 mysql-->
<select id="find" parameterType="Map" resultMap="User">
select * from t_user
<where>
<if test="userName!=null and userName!='' ">
and userName like '%'||#{userName,jdbcType=VARCHAR}||'%'
</if>
</where>
<if test="start!=null and size!=null">
limit #{start},#{size}
</if>
</select>
<!--获取总记录数 -->
<select id="getTotal" parameterType="Map" resultType="java.lang.Integer">
select count(1) from t_user
<where>
<if test ="userName !=null and userName !='' ">
userName like '%'||#{userName,jdbcType=VARCHAR}||'%'
</if>
</where>
</select>
页面:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel="stylesheet" type="text/css" href="${pageContext.request.contextPath}/easyui/themes/default/easyui.css" />
<link rel="stylesheet" type="text/css" href="${pageContext.request.contextPath}/easyui/themes/icon.css" />
<script type="text/javascript" src="${pageContext.request.contextPath}/jquery/jquery-2.1.3.js"></script>
<script type="text/javascript" src="${pageContext.request.contextPath}/easyui/jquery.easyui.min.js"></script>
<script type="text/javascript" src="${pageContext.request.contextPath}/easyui/locale/easyui-lang-zh_CN.js"></script>
<script type="text/javascript">
var url;
function searchUser(){
$("#dg").datagrid('load',{
"userName":$("#s_userName").val()
});
}
function openUserAddDialog(){
$("#dlg").dialog("open").dialog("setTitle","添加用户");
url="${pageContext.request.contextPath}/userController/saveUser.do"
}
function openUserModifyDialog(){
var selectedRows=$("#dg").datagrid("getSelections");//返回的是一个集合数组
if(selectedRows.length!=1){
$.messager.alert("系统提示","请选择一条要编辑的数据!");
return;
}
var row=selectedRows[0];//获取一条数据修改
$("#dlg").dialog("open").dialog("setTitle","编辑用户信息");
$("#fm").form("load",row);//加载所有字段信息
url="${pageContext.request.contextPath}/userController/saveUser.do?id="+row.id;
}
function saveUser(){
$("#fm").form("submit",{
url:url,
onSubmit:function(){
if($("#roleName").combobox("getValue")==""){
$.messager.alert("系统提示","请选择用户角色!");
return false;
}
return $(this).form("validate");
},
success:function(result){
var result=eval('('+result+')');
if(result.success){
$.messager.alert("系统提示","保存成功!");
resetValue();
$("#dlg").dialog("close");
$("#dg").datagrid("reload");
}else{
$.messager.alert("系统提示","保存失败!");
return;
}
}
});
}
function resetValue(){
$("#userName").val("");
$("#password").val("");
$("#trueName").val("");
$("#email").val("");
$("#phone").val("");
$("#roleName").combobox("setValue","");
}
function closeUserDialog(){
$("#dlg").dialog("close");
resetValue();
}
function deleteUser(){
var selectedRows=$("#dg").datagrid("getSelections");
if(selectedRows.length==0){
$.messager.alert("系统提示","请选择要删除的数据!");
return;
}
var strIds=[];
for(var i=0;i<selectedRows.length;i++){
strIds.push(selectedRows[i].id);
}
var ids=strIds.join(",");
$.messager.confirm("系统提示","您确定要删除这<font color=red>"+selectedRows.length+"</font>条数据吗?",function(r){
if(r){
$.post("${pageContext.request.contextPath}/userController/deleteUser.do",{ids:ids},function(result){
if(result.success){
$.messager.alert("系统提示","数据已成功删除!");
$("#dg").datagrid("reload");
}else{
$.messager.alert("系统提示","数据删除失败,请联系系统管理员!");
}
},"json");
}
});
}
</script>
<title>Insert title here</title>
</head>
<body style="margin: 1px">
<!-- pagination="true" rownumbers="true" 设置就是分页 设置他即可 -->
<table id="dg" title="用户管理" class="easyui-datagrid"
fitColumns="true" pagination="true" rownumbers="true"
url="${pageContext.request.contextPath}/userController/list.do" fit="true" toolbar="#tb">
<thead>
<tr>
<th field="cb" checkbox="true" align="center"></th>
<th field="id" width="50" align="center">编号</th>
<th field="userName" width="50" align="center">用户名</th>
<th field="password" width="50" align="center">密码</th>
<th field="trueName" width="50" align="center">真实姓名</th>
<th field="email" width="50" align="center">邮件</th>
<th field="phone" width="50" align="center">联系电话</th>
<th field="roleName" width="50" align="center">角色</th>
</tr>
</thead>
</table>
<div id="tb">
<div>
<a href="javascript:openUserAddDialog()" class="easyui-linkbutton" iconCls="icon-add" plain="true">添加</a>
<a href="javascript:openUserModifyDialog()" class="easyui-linkbutton" iconCls="icon-edit" plain="true">修改</a>
<a href="javascript:deleteUser()" class="easyui-linkbutton" iconCls="icon-remove" plain="true">删除</a>
</div>
<div><!-- event.keyCode==13 是按了enter键 -->
用户名: <input type="text" id="s_userName" size="20" onkeydown="if(event.keyCode==13) searchUser()"/>
<a href="javascript:searchUser()" class="easyui-linkbutton" iconCls="icon-search" plain="true">搜索</a>
</div>
</div>
<div id="dlg" class="easyui-dialog" style="width:620px;height:250px;padding: 10px 20px;"
closed="true" buttons="#dlg-buttons">
<form id="fm" method="post">
<table cellspacing="8px">
<tr>
<td>用户名:</td>
<td><input type="text" id="userName" name="userName" class="easyui-validatebox" required="true"/> <font color="red">*</font></td>
<td> </td>
<td>密码</td>
<td><input type="text" id="password" name="password" class="easyui-validatebox" required="true"/> <font color="red">*</font></td>
</tr>
<tr>
<td>真实姓名:</td>
<td><input type="text" id="trueName" name="trueName" class="easyui-validatebox" required="true"/> <font color="red">*</font></td>
<td> </td>
<td>邮箱:</td>
<td><input type="text" id="email" name="email" class="easyui-validatebox" validType="email" required="true"/> <font color="red">*</font></td>
</tr>
<tr>
<td>联系电话:</td>
<td><input type="text" id="phone" name="phone" class="easyui-validatebox" required="true"/> <font color="red">*</font></td>
<td> </td>
<td>用户角色</td>
<td>
<select class="easyui-combobox" id="roleName" name="roleName" style="width: 154px" editable="false" panelHeight="auto">
<option value="">请选择角色...</option>
<option value="系统管理员">系统管理员</option>
<option value="销售主管">销售主管</option>
<option value="客户经理">客户经理</option>
<option value="高管">高管</option>
</select>
<font color="red">*</font>
</td>
</tr>
</table>
</form>
</div>
<div id="dlg-buttons">
<a href="javascript:saveUser()" class="easyui-linkbutton" iconCls="icon-ok">保存</a>
<a href="javascript:closeUserDialog()" class="easyui-linkbutton" iconCls="icon-cancel">关闭</a>
</div>
</body>
</html>