<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<!-- 、JQuery的js包 -->
<script type="text/javascript" src="jquery-easyui-1.4.4/jquery.min.js"></script>
<!-- css资源 -->
<link rel="stylesheet" type="text/css" href="jquery-easyui-1.4.4/themes/default/easyui.css">
<!-- 、图标资源 -->
<link rel="stylesheet" type="text/css" href="jquery-easyui-1.4.4/themes/icon.css">
<!-- 、easyui的js包 -->
<script type="text/javascript" src="jquery-easyui-1.4.4/jquery.easyui.min.js"></script> <!-- 、本地语言 -->
<script type="text/javascript" src="jquery-easyui-1.4.4/locale/easyui-lang-zh_CN.js"></script>
</head>
<body>
<script type="text/javascript">
//把long型的日期格式转成yyyy-MM-dd格式
function getDate(date)
{
//得到日期对象
var d=new Date(date);
//得到年月日
var year =d.getFullYear();
var month=(d.getMonth()+);
var day= d.getDate();
var rtn=year+"-"+(month<?""+month:month)+"-"+(day<?""+day:day); return rtn;
} var type="add"; $(function(){
//创建data_grid
$("#st").datagrid({ url:'StudentServlet', //数据来源
//冻结列
//列的定义
columns:[[
{field:'idd',checkbox:true},
{field:'sno',title:'学生编号',width:},
{field:'sname',title:'学生姓名',width:},
{field:'ssex',title:'性别',width:,align:'right'},
{field:'sbirthday',title:'生日',width:,align:'center',
formatter: function (value, row, index) {
if(value && value!= "")
{
//var val = new Date(value); //return val.toLocaleDateString(); return getDate(value) }
else
{
return "";
}
} }, {field:'sclass',title:'班级',width:,align:'right'}
]], fitColumns:true,//列自适应宽度,不能和冻结列同时设置为true
striped:true,//斑马线效果
idField:'sno',//主键列
rownumbers:true,//显示行号
singleSelect:false,//是否单选
pagination:true,//显示分页栏
pageList:[,,,],//每页行数选择列表
pageSize:,//出事每页行数
remoteSort:true,//是否服务器端排序,设成false,才能客户端排序
sortName:'sno',//设置排序列
sortOrder:'desc',//排序方式
toolbar:[{iconCls:'icon-search',text:'查询',handler:function(){
//序列化查询表单
var f=$("#form2").serialize();
//alert(f); $("#st").datagrid({url:"StudentServlet?"+f}).datagrid('load'); }},{iconCls:'icon-add',text:'添加',handler:function(){ type="add";
//清楚表单的旧数据
$("#sno").textbox({readonly:false});
$("#form1").form("reset");
$("#saveStu").dialog('open'); }},{iconCls:'icon-edit',text:'修改',handler:function(){ type="edit";
//判断是否选中一条记录
var data=$('#st').datagrid('getSelected');
if(data)
{
//alert(data);
//设置主键字段只读
$("#sno").textbox({readonly:true}); $("#form1").form("reset");
$('#form1').form('load',{sno:data.sno,
sname:data.sname,ssex:data.ssex,sbirthday:getDate(data.sbirthday),
sclass:data.sclass
});
//没有databox可以使用
//$('#form1').form('load',data);
$("#saveStu").dialog({title:'修改学生'}).dialog('open'); }
else
{
$.messager.show({title:'提示',msg:'请选中一条记录'});
} }},{iconCls:'icon-remove',text:'删除',handler:function(){ var data=$('#st').datagrid('getSelections'); if(data.length>)
{
//alert("选中条数="+data.length);
$.messager.confirm("确认","确实要删除吗?",function(r){
if(r)
{
//alert("执行删除sno="+data[0].sno);
//$.get("DeleteStudentServlet?sno="+data[0].sno,
//利用数组,保存选中记录的主键
var snos=[];
for(var i=;i<data.length;i++)
{
snos[i]=data[i].sno;
} $.get("DeleteStudentServlet?snos="+snos,
function(rtn){
var msg=eval("("+rtn+")");
if(msg.success)
{
$('#st').datagrid('reload');
}
$.messager.show({title:"提示",msg:msg.message}); }); }
}); }
else
{
$.messager.show({title:'提示',msg:'请至少选中一条记录'});
} }}]
});
}) </script>
<div id="search" class="easyui-panel" title="查询条件"
data-options="{iconCls:'icon-search',collapsible:true}" style="height:80px;">
<form id="form2" >
<br>
名称:<input class="easyui-textbox" id="sname_s" name="sname_s"> 班级:<input class="easyui-textbox" id="sclass_s" name="sclass_s">
</form> </div>
<table id="st"></table>
<div class="easyui-dialog" id="saveStu" style="width:400px;height:300px;"
title="添加学生" data-options="{closed:true,modal:true,
buttons:[{text:'保存',iconCls:'icon-save',handler:function(){
$('#form1').form('submit',{
url:'SaveStudentServlet?type='+type,
onSubmit:function(){
var isValid = $(this).form('validate'); if (!isValid){
$.messager.show({
title:'消息',
msg:'数据验证未通过'
});
}
return isValid;
},
success:function(data){
var msg=eval('(' +data+ ')');
if(!msg.success)
{
$.messager.show({title:'提示',msg:msg.message});
}
else
{
$('#st').datagrid('reload');
$.messager.show({title:'提示',msg:msg.message});
$('#saveStu').dialog('close');
}
} });
}},
{text:'取消',iconCls:'icon-cancel',handler:function(){$('#saveStu').dialog('close')}}]}"
>
<form action="" id="form1" method="post">
<br><br>
<table border="" width="100%">
<tr>
<td align="right" width="30%">学号:</td>
<td><input class="easyui-textbox" id="sno" name="sno" data-options="{required:true,validType:'length[3,3]'}"></td>
</tr>
<tr>
<td align="right" width="30%">名称:</td>
<td><input class="easyui-textbox" id="sname" name="sname" data-options="{required:true,validType:'length[2,4]'}"></td>
</tr>
<tr>
<td align="right" width="30%">性别:</td>
<td><input type="radio" name="ssex" value="男" checked="checked">男<input type="radio" name="ssex" value="女" >女</td>
</tr>
<tr>
<td align="right" width="30%">生日:</td>
<td><input class="easyui-datebox" id="sbirthday" name="sbirthday"></td>
</tr>
<tr>
<td align="right" width="30%">班级:</td>
<td><input class="easyui-textbox" id="sclass" name="sclass" data-options="{validType:'length[2,5]'}"></td>
</tr>
</table> </form> </div> </body>
</html>

package com.hanqi.web;

import java.io.IOException;
import java.util.HashMap;
import java.util.Map; import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.hanqi.service.StudentService; /**
* Servlet implementation class StudentServlet
*/
public class StudentServlet extends HttpServlet {
private static final long serialVersionUID = 1L; /**
* @see HttpServlet#HttpServlet()
*/
public StudentServlet() {
super();
// TODO Auto-generated constructor stub
} /**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("UTF-8");
response.setContentType("text/html"); String spage=request.getParameter("page");
String srows=request.getParameter("rows"); String sort=request.getParameter("sort");
String order=request.getParameter("order"); String sname_s=request.getParameter("sname_s");
if(sname_s!=null)
{
sname_s=new String(sname_s.getBytes("ISO-8859-1"),"UTF-8");
}
String sclass_s=request.getParameter("sclass_s");
if(sclass_s!=null)
{
sclass_s=new String(sclass_s.getBytes("ISO-8859-1"),"UTF-8");
}
if(spage!=null&& srows!=null)
{
int page=Integer.parseInt(spage);
int rows=Integer.parseInt(srows);
Map<String, String> where= new HashMap<String, String>(); where.put("sname_s", sname_s); where.put("sclass_s", sclass_s);
String ls="";
if(sort!=null&&order!=null)
{
ls=sort+" "+order;
}
String json =new StudentService().getPageJSON(page, rows,ls,where); response.getWriter().print(json); }
else
{
response.getWriter().print( "{'title':0,'rows':[]}");
} } /**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request, response);
} }
package com.hanqi.web;

import java.io.IOException;
import java.text.SimpleDateFormat; import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import com.hanqi.entity.Student;
import com.hanqi.service.StudentService; /**
* Servlet implementation class SaveStudentServlet
*/
public class SaveStudentServlet extends HttpServlet {
private static final long serialVersionUID = 1L; /**
* @see HttpServlet#HttpServlet()
*/
public SaveStudentServlet() {
super();
// TODO Auto-generated constructor stub
} /**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("UTF-8");
response.setContentType("text/html");
String sno=request.getParameter("sno");
String sname=request.getParameter("sname");
String ssex=request.getParameter("ssex");
String sbirthday=request.getParameter("sbirthday");
String sclass=request.getParameter("sclass");
//接受参数 表示添加或修改 String type=request.getParameter("type"); if(sno!=null && type!=null)
{
String msg="{'success':true,'message':'保存成功'}";
try
{
Student stu=new Student();
stu.setSno(sno);
stu.setSclass(sclass);
stu.setSname(sname);
stu.setSsex(ssex);
if(sbirthday!=null&&!sbirthday.trim().equals(""))
{
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
stu.setSbirthday(sdf.parse(sbirthday));
}
if(type.equals("add"))
{
new StudentService().addStudent(stu);
}
else
{
new StudentService().editStudent(stu);
}
}
catch(Exception e)
{
msg="{'success':false,'message':'保存不成功,数据异常"+e.getMessage()+"'}";
} response.getWriter().print(msg);
}
else
{
String msg="{'success':false,'message':访问异常}"; response.getWriter().print(msg);
} } /**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request, response);
} }
package com.hanqi.web;

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import com.hanqi.service.StudentService; /**
* Servlet implementation class DeleteStudentServlet
*/
public class DeleteStudentServlet extends HttpServlet {
private static final long serialVersionUID = 1L; /**
* @see HttpServlet#HttpServlet()
*/
public DeleteStudentServlet() {
super();
// TODO Auto-generated constructor stub
} /**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("UTF-8");
response.setContentType("text/html");
String snos=request.getParameter("snos");
System.out.println("1231231312312#####"+snos); if(snos!=null)
{
String msg="{'success':true,'message':'删除成功'}";
try
{
String[] sno=snos.split(",");
for(String s:sno)
{
new StudentService().deleteStudent(s);
} }
catch(Exception e)
{
msg="{'success':false,'message':'删除不成功,数据异常"+e.getMessage()+"'}";
}
response.getWriter().print(msg);
}
else
{ String msg="{'success':false,'message':'访问异常'}"; response.getWriter().print(msg);
} } /**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request, response);
} }

service层

package com.hanqi.service;

import java.util.List;
import java.util.Map; import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.hanqi.dao.StudentDAO;
import com.hanqi.entity.Student; public class StudentService { //保存
public void addStudent(Student stu)
{
new StudentDAO().insert(stu);
}
//修改
public void editStudent(Student stu)
{
new StudentDAO().update(stu);
}
//删除
public void deleteStudent(String sno)
{
new StudentDAO().delete(sno);
} //查询分页数据
//返回JSON
public String getPageJSON(int page,int rows,String sort,Map<String, String>where)
{
PageJSON<Student> pj=new PageJSON<>(); String rtn=JSONObject.toJSONString(pj);//"{'title':0,'rows':[]}"; int total=new StudentDAO().getTotal(where);
if(total>)
{
List<Student>ls= new StudentDAO().getPageList(page, rows, sort, where); //String ls_json=JSONArray.toJSONString(ls);
//利用转义字符转成JSON格式的语句
//rtn="{\"total\":"+total+",\"rows\":"+ls_json+"}";
pj.setTotal(total);
pj.setRows(ls);
rtn=JSONObject.toJSONString(pj); }
return rtn;
} }

建一个类来封装JSON格式:

package com.hanqi.service;

import java.util.ArrayList;
import java.util.List; public class PageJSON<T> {
//封装Json数据格式
private int total=; private List<T> rows= new ArrayList<T>(); public int getTotal() {
return total;
} public void setTotal(int total) {
this.total = total;
} public List<T> getRows() {
return rows;
} public void setRows(List<T> rows) {
this.rows = rows;
} }
package com.hanqi.dao;

import java.util.ArrayList;
import java.util.List;
import java.util.Map; import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.boot.registry.StandardServiceRegistryBuilder;
import org.hibernate.cfg.Configuration;
import org.hibernate.service.ServiceRegistry; import com.hanqi.entity.Student; public class StudentDAO { ServiceRegistry sr=null;
Configuration cfg=null;
SessionFactory sf=null;
Session se=null;
Transaction tr=null; public StudentDAO()
{
cfg=new Configuration().configure(); sr=new StandardServiceRegistryBuilder()
.applySettings(cfg.getProperties()).build(); }
//初始化
private void init()
{ sf=cfg.buildSessionFactory(sr);
se=sf.openSession();
tr=se.beginTransaction();
}
//提交和释放资源
private void destory()
{
tr.commit();
se.close();
sf.close();
}
//添加数据的方法
public void insert(Student stu)
{
init();
se.save(stu);
destory();
}
//修改数据的方法
public void update(Student stu)
{
init();
se.update(stu);
destory();
}
//删除数据的方法
public void delete(String sno)
{
init();
//Student stu=(Student)se.get(Student.class, sno);
//se.delete(stu);
//HQL方式执行删除
se.createQuery("delete Student where sno=?").setString(, sno).executeUpdate(); destory();
}
//获取分页的数据集合
public List<Student> getPageList(int page,int rows,String sort,Map<String, String>where )
{
List<Student> rtn=new ArrayList<Student>();
int num=(page-)*rows;
init();
String sql="from Student where 1=1";
String sname=where.get("sname_s");
if(sname!=null&&!sname.equals(""))
{
sql+="and sname=:sname";
}
String sclass=where.get("sclass_s");
if(sclass!=null&&!sclass.equals(""))
{
sql+=" and sclass=:sclass";
}
//排序
if(sort!=null&&!sort.equals(""))
{
sql+=" order by "+sort;
}
Query q=se.createQuery(sql);
if(sname!=null&&!sname.equals(""))
{
q.setString("sname", sname);
}
if(sclass!=null&&!sclass.equals(""))
{
q.setString("sclass", sclass);;
} rtn=q.setFirstResult(num).
setMaxResults(rows).list();
destory();
return rtn;
} //获取数据条数
public int getTotal(Map<String, String>where)
{
int rtn=;
init();
String sql="select count(1) from Student where 1=1";
String sname=where.get("sname_s");
if(sname!=null&&!sname.equals(""))
{
sql+="and sname=:sname";
}
String sclass=where.get("sclass_s");
if(sclass!=null&&!sclass.equals(""))
{
sql+=" and sclass=:sclass";
}
Query q=se.createQuery(sql);
if(sname!=null&&!sname.equals(""))
{
q.setString("sname", sname);
}
if(sclass!=null&&!sclass.equals(""))
{
q.setString("sclass", sclass);;
} List<Object>lo=q.list();
if(lo!=null&&lo.size()>)
{
rtn=Integer.parseInt(lo.get().toString());
} destory();
return rtn;
} }

easyui表格的增删改查的更多相关文章

  1. jQuery EasyUI/TopJUI实现数据表格的增删改查功能(不写js,纯HTML实现!!!)

    jQuery EasyUI/TopJUI实现数据表格的增删改查功能(不写js,纯HTML实现!!!) 废话不多说,直接贴上代码 <table id="configEdatagrid&q ...

  2. SQL server 创建 修改表格 及表格基本增删改查 及 高级查询 及 (数学、字符串、日期时间)函数[转]

    SQL server 创建 修改表格 及表格基本增删改查 及 高级查询 及 (数学.字符串.日期时间)函数   --创建表格 create table aa ( UserName varchar(50 ...

  3. js实现表格的增删改查

    这份代码实现了对表格的增加,删除,更改,查询. 点击一次添加按钮,表格会增加一行. 点击重置按钮,输入框的内容会被清空. 添加一行后,最后两格为更改和删除.点击更改,原有内容会各自显示在一个输入框内, ...

  4. 用AngularJS实现对表格的增删改查(仅限前端)

    <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...

  5. 基于AT UI实现表格的增删改查遇到的坑

    基于AT UI实现表格的增删改查遇到的坑 坑一.表格数据加载的渲染报错 报错:Error in render: "TypeError: Cannot read property 'isChe ...

  6. 【原生】js实现表格的增删改查

    说在前面的,写给小白白的,大神请绕道~ 今天用原生js写一下动态表格的增删改查,主要是熟悉一下js的DOM操作. 首先,做一个表格,用来显示提交的数据,如图下: 此处,我添加了编号.姓名.密码.生日. ...

  7. 快速开发平台WebBuilder中ExtJS表格的增删改查

    使用WebBuilder可实现表格的自动增删改查功能,而无需编写前台脚本和后台SQL. WebBuilder开源项目地址:http://www.putdb.com 自动生成的页面: <!DOCT ...

  8. easyui+nodejs+sqlserver增删改查实现

    用到的模块或者技术: Express: http://www.expressjs.com.cn/4x/api.html#express Easyui: http://www.jeasyui.com/d ...

  9. Angularjs中表格的增删改查

    在一个管理系统中,不外乎都是增删改查.现在比如有个表格,我想修改当前行的数据,如下图所示 一点击修改的时候,当前页面我需要修改的数据,变成能修改的样式,点击保存能保存当前修改的数据,如下图所示 需要引 ...

随机推荐

  1. 在ABP中创建Person实体类

    经过之前的准备目前我们的项目,终于可以搞正式的开发工作了. 创建实体Person 在Core类库中添加Person类 /// <summary> /// 联系人 /// </summ ...

  2. TODO:Github的使用技巧之同步代码

    TODO:Github的使用技巧之同步代码 GitHub 是一个面向开源及私有软件项目的托管平台,因为只支持 Git 作为唯一的版本库格式进行托管,故名 GitHub. GitHub 于 2008 年 ...

  3. Python 学习之路 (一):基础

    数据类型和变量 整数 在Python3中,整数可以处理任意大小的整数,不分长整型和整型, 十六进制用0x开头或者H结尾表示:0x2af ,2afH 用函数 int() 来转换字符串中的数字,里面不能包 ...

  4. ASP.NET Core中的依赖注入(3): 服务的注册与提供

    在采用了依赖注入的应用中,我们总是直接利用DI容器直接获取所需的服务实例,换句话说,DI容器起到了一个服务提供者的角色,它能够根据我们提供的服务描述信息提供一个可用的服务对象.ASP.NET Core ...

  5. Chrome在302重定向的时候对原请求产生2次请求的问题说明

    这个问题应该确确实实是一个Chrome的BUG,我在自己的编程环境中发现,并在多个服务器,多个编程语言的运行环境,以及多个浏览器下都测试过,都看到有2次请求出现.为了证明不是自己环境的问题,我也特意去 ...

  6. 让我们山寨一张Windows Azure Global的壁纸

    用过国际版Azure的同学都见过一个显示了机器中主要信息的壁纸,而这个壁纸是通过Sysinternals的一款叫做bginfo来实现的,这款软件的好处是对于批量管理主(虚拟)机的管理员和使用方都很实用 ...

  7. Java:泛型基础

    泛型 引入泛型 传统编写的限制: 在Java中一般的类和方法,只能使用具体的类型,要么是基本数据类型,要么是自定义类型.如果要编写可以应用于多种类型的代码,这种刻板的限制就会束缚很多! 解决这种限制的 ...

  8. ASP.NET Core 中文文档 第二章 指南(4.8)添加新的字段

    原文 Adding a New Field 作者 Rick Anderson 翻译 谢炀(Kiler) 校对 许登洋(Seay).高嵩(Jack) 在这个章节你将使用 Entity Framework ...

  9. SQL Server里在文件组间如何移动数据?

    平常我不知道被问了几次这样的问题:“SQL  Server里在文件组间如何移动数据?“你意识到这个问题:你只有一个主文件组的默认配置,后来围观了“SQL Server里的文件和文件组”后,你知道,有多 ...

  10. iis7.0与asp.net的运行原理

    IIS7.0 IIS7.0主要引入了WAS(Windows Process Activation,不同于6.0中的Web Admin Service),分担了原来w3svc的部分功能,同时为IIS7. ...