hibernate、easyui、struts2整合
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>学生表</title>
<!-- 1jQuery的js包 -->
<script type="text/javascript" src="jquery-easyui-1.4.4/jquery.min.js"></script>
<!-- 2css资源 -->
<link rel="stylesheet" type="text/css" href="jquery-easyui-1.4.4/themes/default/easyui.css">
<!-- 3图标资源 -->
<link rel="stylesheet" type="text/css" href="jquery-easyui-1.4.4/themes/icon.css">
<!-- 4easyui的js包 -->
<script type="text/javascript" src="jquery-easyui-1.4.4/jquery.easyui.min.js"></script>
<!-- 5本地语言包 -->
<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()+1);
var day=d.getDate();
var rtn=year +"-"+(month<10 ? "0"+month:month)+"-"+(day<10 ? "0"+day:day)
return rtn;
}
var type="add"; $(function(){ //创建DataGrid
$("#dg").datagrid({
url:'getStudentlist.action', //数据来源
//冻结列
frozenColumns:[[{field:'id',checkbox:true},
{field:'sno',title:'学生编号',width:100}]], //列的定义
columns:[[
{field:'sname',title:'学生名',width:100},
{field:'ssex',title:'性别',width:100},
{field:'sclass',title:'班级',width:100,align:'right'},
{field:'sbirthday',title:'生日',width:200,align:'center',
formatter: function(value,row,index){
var valuee = new Date(value).toLocaleDateString();
if(valuee == 'Invalid Date')
{
return '无' ;
}
else
{
//return valuee;
return getDate(valuee);
}
}
} ]], remoteSort:true,//是否服务器端排序
sortOrder:'desc',//排序方式
sortName:'sno',//排序字段
fitColumns:false,//列自适应宽度 ,不能和冻结列同时设置为true
striped:true,//斑马线效果
idField:'sno',//主键列
rownumbers:true,//显示行号
singleSelect:false,//是否单选
pagination:true,//显示分页栏
pageList:[10,20,30,40],//每页行数选择列表
pageSize:10,//初始每页行数 multiSort:true,//是否允许多列排序 toolbar:[{iconCls:'icon-search',text:'查询',
handler:function(){ //序列化表单查询
var f=$("#form2").serialize(); $("#dg").datagrid({url:"getStudentlist.action?"+f}); }
},{iconCls:'icon-add',text:'添加',
handler:function(){
$("#sno").textbox({readonly:false});
type="add";
//清除表单旧数据
$("#form1").form("reset");
$("#saveStu").dialog({title:'添加学生'}).dialog('open');}
},{iconCls:'icon-edit',text:'修改',
handler:function(){
type="edit";
//判断是否选中一条数据
var data =$('#dg').datagrid('getSelected');
if(data)
{
//alert(data); //设置字段只读
$("#sno").textbox({readonly:true}); $("#form1").form('reset');
$("#form1").form("load",{sno:data.sno,
ssex:data.ssex,sclass:data.sclass,
sname:data.sname,sbirthday:getDate(data.sbirthday)});
//$('form').('load',data);
$("#saveStu").dialog({title:'修改学生'}).dialog('open');
}
else
{
$.messager.show({
title:'提示',
msg:'请选中一条记录'
});
}
}
},{iconCls:'icon-remove',text:'删除',
handler:function(){
//判断是否选中一条数据
var data =$('#dg').datagrid('getSelections'); if(data.length>0)
{ $.messager.confirm("确认","确实删除吗?",function(r){ if(r){
//alert("执行删除");
//用数组保存选中记录的主键
var snos=[];
for(var i=0;i<data.length;i++)
{
snos[i]=data[i].sno;
}
$.get("deleteStudentServlet?sno="+snos,function(rtn){ //alert(rtn); var msg= eval("("+rtn+")");
if(msg.success)
{
$("#dg").datagrid('reload');
}
$.messager.show({title:"提示",msg:msg.message});
}); }
else{ } } ) }
else
{
$.messager.show({
title:'提示',
msg:'请选中一条记录'
});
} } }]
}); }) </script>
<div id="search" class="easyui-panel" title="查询条件" style="heiget:100px"
data-options="{iconCls:'icon-search',collapsible:true}">
<form id="form2"> 名称:<input class="easyui-textbox" id="sname_s" name="sname_s">
班级:<input class="easyui-textbox" id="sclass_s" name="sclass_s"> </form> </div> <table id="dg" >
</table> <div class="easyui-dialog" id="saveStu" style="width:400px;height:300px;top:50px;"
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)
{
alert(msg.message);
}
else
{
//
$('#dg').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>
<tr>
<td align="right" width=30%>学号:</td>
<td><input class="easyui-textbox" id="sno" name="sno" data-options=
"{required:true,validType:'length[3,5]'}"></td>
</tr>
<tr>
<td align="right" width=30%>名称:</td>
<td><input class="easyui-textbox" 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" checked
value="男">男
<input type="radio" name="ssex"
value="女">女</td>
</tr>
<tr>
<td align="right" width=30%>班级:</td>
<td><input class="easyui-textbox" name="sclass" data-options=
"{required:true,validType:'length[2,4]'}"></td>
</tr>
<tr>
<td align="right" width=30%>生日:</td>
<td><input class="easyui-datebox" name="sbirthday" ></td>
</tr> </table> </form>
</div> </body>
</html>
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 { Configuration cfg=null;
ServiceRegistry sr=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 st=(Student)se.get(Student.class, sno); //se.delete(st); //SQL方式执行删除
se.createQuery("delete from Student where sno=?")
.setString(0, sno).executeUpdate();
destory();
} //获取分页的数据集合
public List<Student> getPageList(int page,int rows,Map<String, String> where,String sort)
{
System.out.println(sort+ "dao");
List<Student> rtn=new ArrayList<Student>();
init();
//创建基础HQL语句
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;
}
//得到HQL
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((page-1)*rows).
setMaxResults(rows).list(); destory(); return rtn;
} //获取数据条数
public int getTotal(Map<String, String> where){
int rtn=0;
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";
} //得到HQL
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=se.createQuery("select count(1)from Student").list();
List<Object> lo=q.list();
if(lo!=null&&lo.size()>0)
{
rtn=Integer.parseInt(lo.get(0).toString());
}
destory(); return rtn;
} }
package com.hanqi.entity;
import java.util.Date;
public class Student {
private String sno,sname,ssex,sclass;
private Date sbirthday;
public String getSno() {
return sno;
}
public void setSno(String sno) {
this.sno = sno;
}
public String getSname() {
return sname;
}
public void setSname(String sname) {
this.sname = sname;
}
public String getSsex() {
return ssex;
}
public void setSsex(String ssex) {
this.ssex = ssex;
}
public String getSclass() {
return sclass;
}
public void setSclass(String sclass) {
this.sclass = sclass;
}
public Date getSbirthday() {
return sbirthday;
}
public void setSbirthday(Date sbirthday) {
this.sbirthday = sbirthday;
}
}
package com.hanqi.Service; import java.util.HashMap;
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 addStudeng(Student stu)
{
new StudentDAO().insert(stu);
} //查询分页数据
//返回JSON public String getPageJSON(int page,int rows,Map<String, String> where,String sort)
{
PageJson<Student>pj=new PageJson<>();
String rtn="{'total':0,'rows':[]}"; int total=new StudentDAO().getTotal(where);
if(total>0)
{
System.out.println(sort+ "service");
List<Student> ls=new StudentDAO().getPageList(page, rows,where,sort); //String ls_json=JSONArray.toJSONString(ls); //rtn="{\"total\":"+total+",\"rows\":"+ls_json+"}"; pj.setTotal(total);
pj.setRows(ls);
rtn=JSONObject.toJSONString(pj); }
return rtn;
}
public void editStu(Student stu)
{
new StudentDAO().update(stu); } public void delete(String sno)
{
new StudentDAO().delete(sno); } }
package com.hanqi.action;
public class TestAction {
private String msg;
private String name;
public String testGet()
{
System.out.println("处理get请求");
msg="{\"success\":true,\"message\":\"666\"}";
name="tom";
return "success";
}
public String getMsg() {
return msg;
}
public void setMsg(String msg) {
this.msg = msg;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
struts2
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd"> <struts> <!-- 设置过滤的扩展名 -->
<constant name="struts.action.extension" value="do,action,,"></constant> <package name="test" extends="json-default"> <action name="TestGet"
class="com.hanqi.action.TestAction"
method="testGet"> <!-- 返回了JSON格式的Action对象 -->
<result type="json">
<param name="root">msg</param> </result> </action> </package> <package name="stu" extends="json-default">
<action name="getStudentlist"
class="com.hanqi.action.StudentAction"
method="getStudentlis-t"></action> </package>
</struts>
hibernate、easyui、struts2整合的更多相关文章
- hibernate与struts2整合中出现问题以及一级缓存查询数据在业务层问题
直接上问题: org.hibernate.HibernateException: HHH000142: Javassist Enhancement failed: cn.xxx.pojo.Custom ...
- Hibernate和Struts2整合的增、删、改、查
1. 新建一个Web项目,准备好jar包和配置文件. 2. web.xml文件中添加过滤器 <?xml version="1.0" encoding="UTF-8& ...
- 【Java EE 学习 53】【Spring学习第五天】【Spring整合Hibernate】【Spring整合Hibernate、Struts2】【问题:整合hibernate之后事务不能回滚】
一.Spring整合Hibernate 1.如果一个DAO 类继承了HibernateDaoSupport,只需要在spring配置文件中注入SessionFactory就可以了:如果一个DAO类没有 ...
- struts2,hibernate,spring整合笔记(3)
struts2,hibernate,spring整合笔记(1) struts2,hibernate,spring整合笔记(2) 配好struts和hibernate就要开始spring了 老规矩,还是 ...
- struts2,hibernate,spring整合笔记(2)
上一话struts2,hibernate,spring整合笔记(1) 接下来继续 配置完struts之后就要开始hibernate的配置 hibernate的环境并不依赖web开发环境,在我第一次配置 ...
- Spring(四):Spring整合Hibernate,之后整合Struts2
背景: 上一篇文章<Spring(三):Spring整合Hibernate>已经介绍使用spring-framework-4.3.8.RELEASE与hibernate-release-5 ...
- SSH(Spring Struts2 Hibernate)框架整合(注解版)
案例描述:使用SSH整合框架实现部门的添加功能 工程: Maven 数据库:Oracle 框架:Spring Struts2 Hibernate 案例架构: 1.依赖jar包 pom.xml < ...
- SSH(Spring Struts2 Hibernate)框架整合(xml版)
案例描述:使用SSH整合框架实现部门的添加功能 工程: Maven 数据库:Oracle 案例架构: 1.依赖jar包pom.xml <project xmlns="http://ma ...
- java框架之Spring(4)-Spring整合Hibernate和Struts2
准备 导包 Struts2 导入 Struts2 zip 包解压目录下 'apps/struts-blank.war' 中所有 jar 包,如下: asm-3.3.jar asm-commons-3. ...
- 吴裕雄--天生自然JAVA SPRING框架开发学习笔记:SSH框架(Struts2+Spring+Hibernate)搭建整合详细步骤
在实际项目的开发中,为了充分利用各个框架的优点,通常都会把 Spring 与其他框架整合在一起使用. 整合就是将不同的框架放在一个项目中,共同使用它们的技术,发挥它们的优点,并形成互补.一般而言,在进 ...
随机推荐
- Tomcat7 Cluster 集群
Tomcat7 自带的集群功能是通过session复制完成的,现有两个复制方式: DeltaManager: 将session复制到所有tomcat节点中,不管是否有相应的应用(it will rep ...
- WCF从零学习之设计和实现服务协定2
WCF从零学习之设计和实现服务协定(二) 在创建服务协定之前,有很多WCF术语,比如: 消息.服务.终结点 创建协定 类或接口都可以定义服务协定,建议使用接口,因为接口可以直接对服务协定建模 服务 ...
- Android JNI(NDK)开发总结
早就知道Java有个jni可以调用本地化代码,一直没有动力去研究它,现在公司想通过在Android中调用本地化代码来申请较多的内存以突破Android对单个进程的内存限制,这确实是可行的:我的Nexu ...
- 记录在IIS中安装部署Orchard遇到的问题
本机环境:Windows 8.1 + IIS8.5 + VS2013+SQLServer2012 首先是从官网直接下载Orchard.Web 1.7.2版的安装包,在本机IIS上部署,按官方文档一步步 ...
- Orchard是一个了不起CMS(内容管理系统)
在这个系列中,我们将共同经历从头开始构建一个Orchard模块的过程! 虽然Orchard是一个了不起CMS(内容管理系统),有着强大的功能和令人振奋的架构,可以无限的扩展,但它可能需要花费一定时间, ...
- MDX示例:求解众数(mode)
在统计学中,众数(Mode)是样本观测值在频数分布表中频数最多的那一组的组中值,主要应用于大面积普查研究之中,众数在一组数据中可能会有好几个.简单的说,众数就是一组数据中占比例最多的一个或几个数.MD ...
- mmDeferred
前端异步解决方案——mmDeferred Deferred是前端解决异步操作的一种编程范式,后来出现的Promise规范更是让其普适性大大提高.不过Promise规范也存在分岐.现在最流行的是Prom ...
- Java快速开发工具 WebBuilder 6.8发布
WebBuilder是一款开源的可视化Java Web应用开发和运行平台: 基于浏览器的集成开发环境,可视化和智能化的设计,能轻松完成常规应用和面向手机的移动应用开发: 高效.稳定和可扩展的特点,适合 ...
- linux学习心得之vim/Cvim篇
linux学习心得之vim/Cvim篇 在linux 下,vim 时一种最常见的编辑器,很多linux的发行版就自带了.我的是CentOS 6.3. 基本上Vim共分为3种模式,分别是一般模式,编辑模 ...
- Java笔记:Java集合概述和Set集合
本文主要是Java集合的概述和Set集合 1.Java集合概述 1)数组可以保存多个对象,但数组长度不可变,一旦在初始化数组时指定了数组长度,这个数组长度就是不可变的,如果需要保存数量变化的数据,数组 ...