一、介绍
二、实例
1、准备工作:
首先导入相应包:
这里需要导入themes和jquery.easyui.min.js,为保证层次关系和互相调用直接拷贝过来即可。
接着创建一个easyui需要的实体类,字段为rows和total。这里用泛型封装了一下:
package com.ifytek.domain;
import java.util.ArrayList;
public class Pager<T> {
private int total;
private ArrayList<T> rows;
public int getTotal() {
return total;
}
public void setTotal(int total) {
this.total = total;
}
public ArrayList<T> getRows() {
return rows;
}
public void setRows(ArrayList<T> rows) {
this.rows = rows;
}
}
2、前台:
<%@ 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">
<title>Insert title here</title>
<link rel="stylesheet" type="text/css" href="assets/themes/default/easyui.css">
<link rel="stylesheet" type="text/css" href="assets/themes/icon.css">
<script type="text/javascript" src="assets/jquery.min.js"></script>
<script type="text/javascript" src="assets/jquery.easyui.min.js"></script>
</head>
<body>
<h2>Custom DataGrid Pager</h2>
<p>You can append some buttons to the standard datagrid pager bar.</p>
<div style="margin:20px 0;"></div>
<table id="dg" title="Custom DataGrid Pager" style="width:700px;height:500px"
data-options="rownumbers:true,singleSelect:true,pagination:true,url:'deal',method:'post'">
<thead>
<tr>
<th data-options="field:'numb',width:80">故障编号</th>
<th data-options="field:'type',width:80">设备型号</th>
<th data-options="field:'idnum',width:80">设备编号</th>
<th data-options="field:'brandname',width:80">设备品牌</th>
<th data-options="field:'applytime',width:80">申报日期</th>
<!-- <th data-options="field:'',width:80">操作</th> -->
</tr>
</thead>
</table>
<script type="text/javascript">
$(function(){
var pager = $('#dg').datagrid().datagrid('getPager'); // get the pager of datagrid
pager.pagination({
buttons:[{
iconCls:'icon-search',
handler:function(){
alert('search');
}
},{
iconCls:'icon-add',
handler:function(){
alert('add');
}
},{
iconCls:'icon-edit',
handler:function(){
alert('edit');
}
}]
});
})
</script>
</body>
</html>
3、重点在于从后台获取数据:
package com.ifytek.controller;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.ifytek.service.EquipService;
@WebServlet("/deal")
public class EquipDeal extends HttpServlet{
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
req.getRequestDispatcher("/WEB-INF/jsp/equipdeal.jsp").forward(req, resp);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
req.setCharacterEncoding("utf-8");
resp.setContentType("application/json;charset=utf-8");
System.out.println("**********equipdeal post");
int currPage=Integer.parseInt(req.getParameter("page"));
int pageSize=Integer.parseInt(req.getParameter("rows"));
EquipService service=new EquipService();
String str=service.getPage(currPage,pageSize);
System.out.println(str);
resp.getWriter().write(str);
}
}
service:
package com.ifytek.service;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import com.alibaba.fastjson.JSON;
import com.ifytek.dao.EquipDao;
import com.ifytek.domain.EquipApply;
import com.ifytek.domain.Equips;
import com.ifytek.domain.EuipsTable;
import com.ifytek.domain.Pager;
import com.ifytek.domain.Message;
import net.sf.json.JSONArray;
public class EquipService {
public String getPage(int currPage, int pageSize) {
EquipDao dao=new EquipDao();
ResultSet resultSet=dao.getPage(currPage,pageSize);
Pager<EuipsTable> page=new Pager<>();
ArrayList<EuipsTable> list=new ArrayList<>();
int total=getTotal();
try {
while(resultSet.next()){
EuipsTable table=new EuipsTable();
table.setId(resultSet.getInt("id"));
table.setNumb(resultSet.getString("numb"));
System.out.println(resultSet.getString("numb"));
table.setType(resultSet.getString("typeclass"));
table.setIdnum(resultSet.getString("idnum"));
table.setBrandname(resultSet.getString("brand"));
table.setClassfiy(resultSet.getString("classfiy"));
//table.setApplytime(resultSet.getString("applytime"));
table.setStatue(resultSet.getString("statue"));
//table.setTime(resultSet.getString("etime"));
table.setMoney(resultSet.getDouble("money"));
table.setInvoice(resultSet.getString("invoice"));
list.add(table);
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
page.setTotal(total);
page.setRows(list);
// JSONArray array=JSONArray.fromObject(page);
// return array.toString();
return JSON.toJSONString(page,true);
}
private int getTotal() {
EquipDao dao=new EquipDao();
int a=dao.getTotal();
return a;
}
}
dao:
package com.ifytek.dao;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.text.SimpleDateFormat;
import java.util.Date;
import com.ifytek.domain.Const;
import com.ifytek.domain.EquipApply;
import com.ifytek.domain.Equips;
import com.ifytek.domain.EuipsTable;
import com.ifytek.util.DbUtil;
public class EquipDao {
DbUtil dbUtil;
public void close() {
dbUtil.close();
}
public int getTotal() {
dbUtil=new DbUtil();
String sql="select count(*) from equips";
ResultSet resultSet=dbUtil.executeQuery(sql);
int a=-1;
try {
if(resultSet.next()){
a=resultSet.getInt(1);
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return a;
}
public ResultSet getPage(int currPage, int pageSize) {
dbUtil=new DbUtil();
System.out.println("currPage为"+currPage+" "+pageSize);
int a = currPage* pageSize;
int b = (currPage-1)*pageSize;
String sql="select * from (select equips.id as id,numb,typeclass,brand,classfiy,applytime,equips.statue as statue,etime,"+
"money,equips.idnum as idnum,invoice,rownum rn from equips left join devices on equips.idnum=devices.idnum where rownum<=?"
+") where rn>?";
ResultSet resultSet=dbUtil.executeQuery(sql,a,b);
return resultSet;
}
}
三、带搜索的分页:
1、前台:
<%@ 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">
<title>Insert title here</title>
<link rel="stylesheet" type="text/css" href="assets/themes/default/easyui.css">
<link rel="stylesheet" type="text/css" href="assets/themes/icon.css">
<script type="text/javascript" src="assets/jquery.min.js"></script>
<script type="text/javascript" src="assets/jquery.easyui.min.js"></script>
</head>
<style>
.tb{
padding: 3px;
}
</style>
<script>
var bigclass="";
var smallclass="";
var typeclass="";
var brandname="";
//搜索
function find(){
/* var dt="&brandname="+brandname+"&bigclass="+bigclass+
"&smallclass="+smallclass+"&typeclass="+typeclass; */
findtype=$("#findtype").val();
$('#dg').datagrid('load',{
brandname: brandname,
bigclass:bigclass,
findtype:findtype,
smallclass:smallclass
});
/* $.post("deal",dt,function(data){
}) */
}
//页面加载完
$(function(){
//品牌下拉列表加载
$.post("getbrand",function(data){
var jsonarr=JSON.parse(data);
//alert("分类下拉列表"+jsonarr);
$("#brandselect").html("");
for(var i=0;i<jsonarr.length;i++){
var da=new Option(jsonarr[i]);
var brandselect=document.getElementById("brandselect");
brandselect.options.add(da);
}
brandname=jsonarr[0];
});
//分类下拉列表加载
$.post("getClassfiy",function(data){
var jsonarr=JSON.parse(data);
$("#bigclassfiyselect").html("");
for(var i=0;i<jsonarr.length;i++){
var da=new Option(jsonarr[i]);
var brandselect=document.getElementById("bigclassfiyselect");
brandselect.options.add(da);
}
bigclass=jsonarr[0];
});
//类别选择事件
$(".bigclassfiyselect").change(function() {
bigclass=$(this).val();
var d = "&realclassfiy=" + bigclass;
$.post("getClassfiy1", d, function(data) {
var js = JSON.parse(data);
$(".smallclassfiyselect").html("");
for(var i = 0; i < js.length; i++) {
var select3 = document.getElementById("smallclassfiyselect");
var da = new Option(js[i]);
select3.options.add(da);
}
})
});
$(".smallclassfiyselect").change(function() {
smallclass=$(this).val();
});
//品牌选择事件
$(".brandselect").change(function() {
//alert("点击");
brandname = $(this).val();
//alert(brandname);
});
})//页面加载结束
</script>
<body>
<div style="margin:20px 0;"></div>
<table id="dg" title="Custom DataGrid Pager" style="width:700px;height:500px" data-options="rownumbers:true,singleSelect:true,pagination:true,url:'deal',method:'post'">
<tr>
<div id="tb" class="tb">
<select class="brandselect" id="brandselect">
<option>请选择品牌</option>
</select>
<select class="bigclassfiyselect" id="bigclassfiyselect">
<option>请选择分类</option>
</select>
<select class="smallclassfiyselect" id="smallclassfiyselect">
<option>请选择分类</option>
</select>
<input type="text" placeholder="请输入型号" class="findtype" name="findtype" id="findtype"/>
<a href="#" class="easyui-linkbutton" plain="true" οnclick="find()">搜索</a>
<!-- <input type="button" οnclick="find()" value="搜索"/> -->
</div>
</tr>
<thead>
<tr>
<th data-options="field:'numb',width:80">故障编号</th>
<th data-options="field:'type',width:80">设备型号</th>
<th data-options="field:'idnum',width:80">设备编号</th>
<th data-options="field:'brandname',width:80">设备品牌</th>
<th data-options="field:'classfiy',width:80">设备分类</th>
<th data-options="field:'applytime',width:80">申报日期</th>
<!-- <th data-options="field:'',width:80">操作</th> -->
</tr>
</thead>
</table>
<script type="text/javascript">
$(function() {
var pager = $('#dg').datagrid().datagrid('getPager'); // get the pager of datagrid
pager.pagination({
buttons: [{
iconCls: 'icon-search',
handler: function() {
alert('search');
}
}, {
iconCls: 'icon-add',
handler: function() {
alert('add');
}
}, {
iconCls: 'icon-edit',
handler: function() {
alert('edit');
}
}]
});
})
</script>
</body>
</html>
2、后台:
package com.ifytek.controller;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.ifytek.service.EquipService;
@WebServlet("/deal")
public class EquipDeal extends HttpServlet{
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
req.getRequestDispatcher("/WEB-INF/jsp/equipdeal.jsp").forward(req, resp);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
req.setCharacterEncoding("utf-8");
resp.setContentType("application/json;charset=utf-8");
System.out.println("**********equipdeal post");
int currPage=Integer.parseInt(req.getParameter("page"));
int pageSize=Integer.parseInt(req.getParameter("rows"));
//搜索参数
Map<String, String> map=new HashMap<>();
String brandname=req.getParameter("brandname");
String bigclass=req.getParameter("bigclass");
String smallclass=req.getParameter("smallclass");
String typeclass=req.getParameter("findtype");
System.out.println(brandname+" "+typeclass+" "+bigclass+" "+smallclass);
map.put("brandname", brandname);
map.put("classfiy", bigclass+" "+smallclass);
map.put("typeclass", typeclass);
EquipService service=new EquipService();
String str=service.getPage(currPage,pageSize,map);
System.out.println(str);
resp.getWriter().write(str);
}
}
package com.ifytek.service;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
import com.alibaba.fastjson.JSON;
import com.ifytek.dao.EquipDao;
import com.ifytek.domain.EquipApply;
import com.ifytek.domain.Equips;
import com.ifytek.domain.EuipsTable;
import com.ifytek.domain.Pager;
import com.ifytek.domain.Message;
import net.sf.json.JSONArray;
public class EquipService {
public Message addEquip(EquipApply apply) {
//故障申报,同时生成故障单
Message message=new Message();
EquipDao applyDao=new EquipDao();
Date date=new Date();
SimpleDateFormat format=new SimpleDateFormat("yyyyMMdd");
SimpleDateFormat format1=new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
String fString=format.format(date)+apply.getIdnum();
String applytime=format1.format(date);
Equips equips=new Equips();
int id=get_Id();
equips.setId(id+1);
equips.setNumb(fString);
equips.setApplytime(applytime);
equips.setIdnum(apply.getIdnum());
// equips.setInvoice(invoice);
equips.setStatue("待维修");
// equips.setTime(time);
equips.setMoney(0.0);
int a=applyDao.addEquipApply(apply);
int b=applyDao.addEquipTable(equips);//生成故障单
if(a>0 && b>0){
message.setCode(200);
message.setMsg("申报成功");
message.setRes(true);
}else{
message.setCode(300);
message.setMsg("服务器繁忙,请稍后再试");
message.setRes(false);
}
applyDao.close();
return message;
}
public int get_Id() {
int a=1;
EquipDao dao=new EquipDao();
ResultSet resultSet=dao.get_Id();
try {
if(resultSet.next()){
a=resultSet.getInt(1);
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
dao.close();
return a;
}
public List<EuipsTable> find(int currPage) {
ArrayList<EuipsTable> list=new ArrayList<>();
EquipDao dao=new EquipDao();
ResultSet resultSet=dao.find(currPage);
try {
while(resultSet.next()){
String brandname="";
String classfiy="";
String type="";
EuipsTable euipsTable=new EuipsTable();
String idnum=resultSet.getString("idnum");
euipsTable.setId(resultSet.getInt("id"));
euipsTable.setApplytime(resultSet.getString("applytime"));
euipsTable.setNumb(resultSet.getString("numb"));
euipsTable.setIdnum(idnum);
euipsTable.setInvoice(resultSet.getString("invoice"));
euipsTable.setMoney(resultSet.getDouble("money"));
euipsTable.setStatue(resultSet.getString("statue"));
euipsTable.setTime(resultSet.getString("etime"));
ResultSet set=dao.findDevicesByIdnum(idnum);
if(set.next()){
brandname=set.getString("brand");
classfiy=set.getString("classfiy");
type=set.getString("typeclass");
}
euipsTable.setBrandname(brandname);
euipsTable.setClassfiy(classfiy);
euipsTable.setType(type);
list.add(euipsTable);
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
dao.close();
return list;
}
public ArrayList<EquipApply> queryEquipApplyByIdnum(String idnum) {
ArrayList<EquipApply> list=new ArrayList<>();
EquipDao dao=new EquipDao();
ResultSet resultSet=dao.queryEquipApplyByIdnum(idnum);
try {
while(resultSet.next()){
EquipApply apply=new EquipApply();
apply.setAddress(resultSet.getString("address"));
apply.setClassfiy(resultSet.getString("classfiy"));
apply.setContact(resultSet.getString("contact"));
apply.setDescribe(resultSet.getString("describetion"));
apply.setFile(resultSet.getString("files"));
apply.setRealoption(resultSet.getString("realclassfiy"));
apply.setUsername(resultSet.getString("name"));
list.add(apply);
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
dao.close();
return list;
}
public ArrayList<EuipsTable> findEquips(EuipsTable equips) {
ArrayList<EuipsTable> list=new ArrayList<>();
EquipDao dao=new EquipDao();
ResultSet resultSet=dao.findEquips(equips);
try {
while(resultSet.next()){
EuipsTable table=new EuipsTable();
table.setId(resultSet.getInt("id"));
table.setNumb(resultSet.getString("numb"));
table.setType(resultSet.getString("typeclass"));
table.setIdnum(resultSet.getString("idnum"));
table.setBrandname(resultSet.getString("brand"));
table.setClassfiy(resultSet.getString("classfiy"));
//table.setApplytime(resultSet.getString("applytime"));
table.setStatue(resultSet.getString("statue"));
//table.setTime(resultSet.getString("etime"));
table.setMoney(resultSet.getDouble("money"));
table.setInvoice(resultSet.getString("invoice"));
list.add(table);
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
dao.close();
return list;
}
public int getId() {
//得到当前id 没有用序列
EquipDao dao=new EquipDao();
int a=dao.getId();
return a;
}
public String getPage(int currPage, int pageSize,Map<String, String> map) {
EquipDao dao=new EquipDao();
ResultSet resultSet=dao.getPage(currPage,pageSize,map);
Pager<EuipsTable> page=new Pager<>();
ArrayList<EuipsTable> list=new ArrayList<>();
int total=getTotal();
try {
while(resultSet.next()){
EuipsTable table=new EuipsTable();
table.setId(resultSet.getInt("id"));
table.setNumb(resultSet.getString("numb"));
System.out.println(resultSet.getString("numb"));
table.setType(resultSet.getString("typeclass"));
table.setIdnum(resultSet.getString("idnum"));
table.setBrandname(resultSet.getString("brand"));
table.setClassfiy(resultSet.getString("classfiy"));
//table.setApplytime(resultSet.getString("applytime"));
table.setStatue(resultSet.getString("statue"));
//table.setTime(resultSet.getString("etime"));
table.setMoney(resultSet.getDouble("money"));
table.setInvoice(resultSet.getString("invoice"));
list.add(table);
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
page.setTotal(total);
page.setRows(list);
// JSONArray array=JSONArray.fromObject(page);
// return array.toString();
return JSON.toJSONString(page,true);
}
private int getTotal() {
EquipDao dao=new EquipDao();
int a=dao.getTotal();
return a;
}
}
dao:
package com.ifytek.dao;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Map;
import com.ifytek.domain.Const;
import com.ifytek.domain.EquipApply;
import com.ifytek.domain.Equips;
import com.ifytek.domain.EuipsTable;
import com.ifytek.util.DbUtil;
public class EquipDao {
DbUtil dbUtil;
public int addEquipApply(EquipApply apply) {//生成故障申报表
dbUtil=new DbUtil();
String sql="insert into equipapply(id,idnum,address,classfiy,contact,name,describetion,files,realclassfiy) values(?,?,?,?,?,?,?,?,?)";
int a=dbUtil.executeUpdate(sql, apply.getId(),apply.getIdnum(),apply.getAddress(),apply.getClassfiy(),
apply.getContact(),apply.getUsername(),apply.getDescribe(),apply.getFile(),apply.getRealoption());
//dbUtil.close();
return a;
}
public int addEquipTable(Equips equips) {//生成故障单
dbUtil=new DbUtil();
String sql="insert into equips(id,numb,idnum,statue,money,invoice) values(?,?,?,?,?,?)";
int a=dbUtil.executeUpdate(sql,equips.getId(),equips.getNumb(),equips.getIdnum(),
equips.getStatue(),equips.getMoney(),equips.getInvoice());
//dbUtil.close();
return a;
}
public void close() {
dbUtil.close();
}
public ResultSet get_Id() {
dbUtil=new DbUtil();
String sql="select max(id) from equips";
ResultSet resultSet=dbUtil.executeQuery(sql);
return resultSet;
}
public ResultSet find(int currPage) {
dbUtil=new DbUtil();
String sql="select * from (select id, numb, idnum, applytime, statue, etime, money, invoice,rownum rn from equips where rownum<=?) where rn>?";
int a = currPage* Const.PAGE_SIZE;
int b = (currPage-1)*Const.PAGE_SIZE;
ResultSet resultSet=dbUtil.executeQuery(sql, a,b);
return resultSet;
}
public ResultSet findDevicesByIdnum(String idnum) {
dbUtil=new DbUtil();
String sql="select brand,classfiy,typeclass from devices where idnum=?";
ResultSet resultSet=dbUtil.executeQuery(sql, idnum);
return resultSet;
}
public ResultSet queryEquipApplyByIdnum(String idnum) {
dbUtil=new DbUtil();
System.out.println("idnum参数值为"+idnum);
String sql="select * from equipapply where idnum=?";
ResultSet resultSet=dbUtil.executeQuery(sql, idnum);
return resultSet;
}
public ResultSet findEquips(EuipsTable equips) {
dbUtil=new DbUtil();
String sql="select equips.id as id,numb,typeclass,brand,"+
"classfiy,applytime,equips.statue as statue,etime,money,equips.idnum as idnum,"+
"invoice from equips left join devices on "+
"equips.idnum=devices.idnum where equips.statue=?"+
" and brand=? and typeclass=? and classfiy=?";//and classfiy=?
ResultSet resultSet=dbUtil.executeQuery(sql, equips.getStatue(),
equips.getBrandname(),equips.getType(),equips.getClassfiy());//equips.getClassfiy(),
return resultSet;
}
public int getId() {
//得到equipapply表的id
dbUtil =new DbUtil();
int a=1;
String sql="select max(id) from equipapply";
ResultSet resultSet=dbUtil.executeQuery(sql);
try {
while(resultSet.next()){
a=resultSet.getInt(1);
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return a;
}
public int getTotal() {
dbUtil=new DbUtil();
String sql="select count(*) from equips";
ResultSet resultSet=dbUtil.executeQuery(sql);
int a=-1;
try {
if(resultSet.next()){
a=resultSet.getInt(1);
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return a;
}
public ResultSet getPage(int currPage, int pageSize,Map<String, String> map) {
dbUtil=new DbUtil();
String brandname=map.get("brandname");
String classfiy=map.get("classfiy");
String typeclass=map.get("typeclass");
System.out.println(brandname==null);
System.out.println(classfiy==null);
ResultSet resultSet = null;
int a = currPage* pageSize;
int b = (currPage-1)*pageSize;
if(brandname==null && typeclass==null){
System.out.println("无条件查询");
String sql="select * from (select equips.id as id,numb,typeclass,brand,classfiy,applytime,equips.statue as statue,etime,"+
"money,equips.idnum as idnum,invoice,rownum rn from equips left join devices on equips.idnum=devices.idnum where rownum<=?"
+") where rn>?";
resultSet=dbUtil.executeQuery(sql,a,b);
}else{
System.out.println("有条件查询");
String sql="select * from (select equips.id as id,numb,typeclass,brand,classfiy,applytime,equips.statue as statue,etime,"+
"money,equips.idnum as idnum,invoice,rownum rn from equips left join devices on equips.idnum=devices.idnum where "+
"rownum<=? and brand=? and typeclass=? and classfiy=? )where rn>?";
resultSet=dbUtil.executeQuery(sql,a,brandname,typeclass,classfiy,b);
}
return resultSet;
}
}
四、经典布局
1、前台:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="keywords" content="jquery,ui,easy,easyui,web">
<meta name="description" content="easyui help you build your web page easily!">
<title>jQuery EasyUI CRUD Demo</title>
<link rel="stylesheet" type="text/css" href="assets/themes/default/easyui.css">
<link rel="stylesheet" type="text/css" href="assets/themes/icon.css">
<style type="text/css">
#fm{
margin:0;
padding:10px 30px;
}
.ftitle{
font-size:14px;
font-weight:bold;
color:#666;
padding:5px 0;
margin-bottom:10px;
border-bottom:1px solid #ccc;
}
.fitem{
margin-bottom:5px;
}
.fitem label{
display:inline-block;
width:80px;
}
</style>
<script type="text/javascript" src="assets/jquery.min.js"></script>
<script type="text/javascript" src="assets/jquery.easyui.min.js"></script>
<script type="text/javascript">
var url;
function searchUser(){
var name=$("#name").val();
$('#dg').datagrid('load', {
name:name
});
}
function newUser(){
$('#dlg').dialog('open').dialog('setTitle','New User');
$('#fm').form('clear');
url="add";
/* $("#fm").submit(function(){
var dt=$("#fm").serialize();
$.post("add",dt,function(data){
alert(data);
});
return false;
}) */
}
function editUser(){
var row = $('#dg').datagrid('getSelected');
if (row){
$('#dlg').dialog('open').dialog('setTitle','Edit User');
$('#fm').form('load',row);
$(".addname").val(row.name);
$(".addage").val(row.age);
$(".addbirthday").val(row.birthday);
$(".addsex").val(row.sex);
alert(row.name);
url = 'update?id='+row.id;
}
}
function saveUser(){
$('#fm').form('submit',{
url: url,
onSubmit: function(){
return $(this).form('validate');
},
success: function(result){
alert(result);
// var result = eval('('+result+')');
if (result.endsWith("成功")){
$('#dlg').dialog('close'); // close the dialog
$('#dg').datagrid('reload'); // reload the user data
} else {
$.messager.show({
title: 'Error',
msg: result.msg
});
}
}
});
}
function removeUser(){
var row = $('#dg').datagrid('getSelected');
if (row){
$.messager.confirm('Confirm','Are you sure you want to remove this user?',function(r){
if (r){
var id=row.id;
var dt="&id="+id;
$.post('delete',dt,function(data){
alert(data);
if (data=="删除成功"){
$('#dg').datagrid('reload'); // reload the user data
} else {
$.messager.show({ // show error message
title: 'Error',
msg: result.msg
});
}
});
}
});
}
}
</script>
</head>
<body>
<h2>Basic CRUD Application</h2>
<div class="demo-info" style="margin-bottom:10px">
<div class="demo-tip icon-tip"> </div>
<div>Click the buttons on datagrid toolbar to do crud actions.</div>
</div>
<table id="dg" title="My Users" class="easyui-datagrid" style="width:700px;height:250px"
url="getstu"
toolbar="#toolbar" pagination="true"
rownumbers="true" fitColumns="true" singleSelect="true">
<thead>
<tr>
<th field="name" width="50">姓名</th>
<th field="age" width="50">Last Name</th>
<th field="sex" width="50">Phone</th>
<th field="birthday" width="50">Email</th>
</tr>
</thead>
</table>
<div id="toolbar">
<a href="#" class="easyui-linkbutton" iconCls="icon-add" plain="true" οnclick="newUser()">新增用户</a>
<a href="#" class="easyui-linkbutton" iconCls="icon-edit" plain="true" οnclick="editUser()">编辑用户</a>
<a href="#" class="easyui-linkbutton" iconCls="icon-remove" plain="true" οnclick="removeUser()">Remove User</a>
<input type="text" name="name" id="name" class="name">
<a href="#" class="easyui-linkbutton" iconCls="icon-search" plain="true" οnclick="searchUser()">查询</a>
</div>
<div id="dlg" class="easyui-dialog" style="width:400px;height:280px;padding:10px 20px"
closed="true" buttons="#dlg-buttons">
<div class="ftitle">User Information</div>
<form id="fm" method="post" novalidate>
<div class="fitem">
<label>姓名</label>
<input name="addname" class="easyui-validatebox addname" required="true">
</div>
<div class="fitem">
<label>年龄</label>
<input name="addage" class="easyui-validatebox addage" required="true">
</div>
<div class="fitem">
<label>性别</label>
<input type="radio" name="addsex" value="男" checked="checked" class="addsex"/>男
<input type="radio" name="addsex" value="女" class="addsex"/>女
</div>
<div class="fitem">
<label>生日</label>
<input name="addbirthday" class="easyui-validatebox addbirthday" validType="date" >
</div>
</form>
</div>
<div id="dlg-buttons">
<a href="#" class="easyui-linkbutton" iconCls="icon-ok" οnclick="saveUser()">Save</a>
<a href="#" class="easyui-linkbutton" iconCls="icon-cancel" οnclick="javascript:$('#dlg').dialog('close')">Cancel</a>
</div>
</body>
</html>
2、后台:
(1、)查:
package com.zt.controller;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.zt.service.StudentService;
@WebServlet("/getstu")
public class StudentServlet extends HttpServlet{
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
req.setCharacterEncoding("utf-8");
resp.setContentType("text/html;charset=utf-8");
int currPage=Integer.parseInt(req.getParameter("page"));
int pageSize=Integer.parseInt(req.getParameter("rows"));
//搜索参数
Map<String, String> map=new HashMap<String,String>();
String name=req.getParameter("name");
System.out.println("name为"+name);
map.put("name", name);
StudentService service=new StudentService();
String str=service.getPage(currPage,pageSize,map);
System.out.println(str);
resp.getWriter().write(str);
}
}
(2、)增:
package com.zt.controller;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.zt.domain.Message;
import com.zt.domain.Student;
import com.zt.service.StudentService;
@WebServlet("/add")
public class AddStudent extends HttpServlet{
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
req.setCharacterEncoding("utf-8");
resp.setContentType("text/html;charset=utf-8");
System.out.println("add");
Student student=new Student();
StudentService service=new StudentService();
int id=service.getId();
String name=req.getParameter("addname");
student.setAge(Integer.parseInt(req.getParameter("addage")));
student.setName(name);
student.setBirthday(req.getParameter("addbirthday"));
student.setId(id+1);
student.setSex(req.getParameter("addsex"));
Message message=service.add(student);
resp.getWriter().write(message.getMsg());
}
}
(3、)改:
package com.zt.controller;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.zt.domain.Message;
import com.zt.domain.Student;
import com.zt.service.StudentService;
@WebServlet("/update")
public class UpdateStudent extends HttpServlet{
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
req.setCharacterEncoding("utf-8");
resp.setContentType("text/html;charset=utf-8");
System.out.println("update post");
StudentService service=new StudentService();
int id=Integer.parseInt(req.getParameter("id"));
String bename=service.getNameById(id);
Student student=new Student();
String name=req.getParameter("addname");
student.setAge(Integer.parseInt(req.getParameter("addage")));
student.setName(name);
student.setBirthday(req.getParameter("addbirthday"));
student.setSex(req.getParameter("addsex"));
System.out.println(bename);
Message message=service.update(bename,student);
resp.getWriter().write(message.getMsg());
}
}
(4、)删:
package com.zt.controller;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.zt.dao.StudentDao;
import com.zt.domain.Message;
import com.zt.service.StudentService;
@WebServlet("/delete")
public class DeleteStudent extends HttpServlet{
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
req.setCharacterEncoding("utf-8");
resp.setContentType("text/html;charset=utf-8");
int id=Integer.parseInt(req.getParameter("id"));
StudentService service=new StudentService();
Message message=service.delete(id);
resp.getWriter().write(message.getMsg());
}
}
3、service:
package com.zt.service;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Map;
import com.alibaba.fastjson.JSON;
import com.zt.dao.StudentDao;
import com.zt.domain.Message;
import com.zt.domain.Pager;
import com.zt.domain.Student;
public class StudentService {
public String getPage(int currPage, int pageSize, Map<String, String> map) {
StudentDao dao=new StudentDao();
ResultSet resultSet=dao.getPage(currPage,pageSize,map);
Pager<Student> page=new Pager<>();
int total=getTotal(map);
page.setTotal(total);
ArrayList<Student> list=new ArrayList<>();
try {
while(resultSet.next()){
Student student=new Student();
student.setAge(resultSet.getInt("age"));
student.setBirthday(resultSet.getString("birthday"));
student.setId(resultSet.getInt("id"));
student.setName(resultSet.getString("name"));
student.setSex(resultSet.getString("sex"));
list.add(student);
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
page.setRows(list);
return JSON.toJSONString(page,true);
}
private int getTotal(Map<String, String> map) {
StudentDao dao=new StudentDao();
int a=dao.getTotal(map);
return a;
}
public int getId() {
StudentDao dao=new StudentDao();
int id=dao.getId();
return id;
}
public Message add(Student student) {
StudentDao dao=new StudentDao();
int a=dao.add(student);
Message message=new Message();
if(a>0){
message.setCode(200);
message.setMsg("添加成功");
message.setRes(true);
}else{
message.setCode(300);
message.setMsg("添加失败");
message.setRes(false);
}
return message;
}
public Message update(String bename, Student student) {
Message message=new Message();
String upname=student.getName();
StudentDao dao=new StudentDao();
int a=0;
if(!bename.equals(upname)){
//改了姓名
//查询用户名是否重复
ResultSet resultSet=checkByName(upname);
try {
if(resultSet.next()){
message.setCode(300);
message.setMsg("用户名已存在");
message.setRes(false);return message;
}else{
a=dao.update(bename,student);
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}else{
//没有修改姓名
a=dao.update(bename,student);
}
if(a>0){
message.setCode(200);
message.setMsg("修改成功");
message.setRes(true);
}else{
message.setCode(300);
message.setMsg("修改失败");
message.setRes(false);
}
return message;
}
private ResultSet checkByName(String upname) {
StudentDao dao=new StudentDao();
ResultSet resultSet=dao.checkByName(upname);
return resultSet;
}
public String getNameById(int id) {
StudentDao dao=new StudentDao();
String name=dao.getNameById(id);
return name;
}
public Message delete(int id) {
StudentDao dao=new StudentDao();
int a=dao.deletestu(id);
Message message=new Message();
if(a>0){
message.setCode(200);
message.setMsg("删除成功");
message.setRes(true);
}else{
message.setCode(300);
message.setMsg("删除失败");
message.setRes(false);
}
return message;
}
}
4、dao:
package com.zt.dao;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Map;
import com.zt.domain.Student;
import com.zt.util.DbUtil;
public class StudentDao {
DbUtil dbUtil;
public ResultSet getPage(int currPage, int pageSize, Map<String, String> map) {
dbUtil=new DbUtil();
String name=map.get("name");
ResultSet resultSet;
int a = currPage* pageSize;
int b = (currPage-1)*pageSize;
if(name==null){
//无条件查询
String sql="select * from (select student.*,rownum rn from student where rownum<=?) where rn>?";
resultSet=dbUtil.executeQuery(sql,a,b);
}else{
String sql="select * from (select student.*,rownum rn from student where rownum<=? and name=?) where rn>?";
resultSet=dbUtil.executeQuery(sql,a,name,b);
}
return resultSet;
}
public int getTotal(Map<String, String> map) {
dbUtil=new DbUtil();
String name=map.get("name");
ResultSet resultSet = null;
if(name==null){
//无条件查询
String sql="select count(*) from student";
resultSet=dbUtil.executeQuery(sql);
}else{
String sql="select count (*) from (select * from student where name=?)";
resultSet=dbUtil.executeQuery(sql,name);
}
try {
if(resultSet.next()){
return resultSet.getInt(1);
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return 0;
}
public int getId() {
dbUtil=new DbUtil();
String sql="select max(id) from student";
ResultSet resultSet=dbUtil.executeQuery(sql);
int a=1;
try {
if(resultSet.next()){
a=resultSet.getInt(1);
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return a;
}
public int add(Student student) {
dbUtil=new DbUtil();
String sql="insert into student(id, name, age, sex, birthday) values(?,?,?,?,?)";
int a=dbUtil.executeUpdate(sql, student.getId(),student.getName(),
student.getAge(),student.getSex(),student.getBirthday());
return a;
}
public int update(String bename, Student student) {
System.out.println("修改前"+bename);
System.out.println("修改后"+student.getName());
dbUtil=new DbUtil();
String sql="update student set name=?,sex=?,birthday=?,age=? where name=?";
int a=dbUtil.executeUpdate(sql, student.getName(),
student.getSex(),student.getBirthday(),student.getAge(),bename);
return a;
}
public ResultSet checkByName(String upname) {
dbUtil=new DbUtil();
String sql="select * from student where name=?";
ResultSet resultSet=dbUtil.executeQuery(sql, upname);
return resultSet;
}
public String getNameById(int id) {
dbUtil=new DbUtil();
String sql="select name from student where id=?";
ResultSet resultSet=dbUtil.executeQuery(sql, id);
try {
if(resultSet.next()){
return resultSet.getString(1);
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
public int deletestu(int id) {
dbUtil=new DbUtil();
String sql="delete from student where id=?";
int a=dbUtil.executeUpdate(sql, id);
return a;
}
}