我们沿用Spring+Hibernate+DWR的例子,做一个Ajax+Struts2.0+Spring+Hibernate整合,许多步骤大体相似,
我就直接搬过来了:
首先,建一个web project,然后添加对hibernate和spring的支持,我们使用的是hibernate3.2和spring2.0,然后导入xwork-2.0.3.jar struts2-core-2.0.8.jar struts2-spring-plugin-2.0.8.jar ognl-2.6.11.jar freemarker-2.3.8.jar commons-logging-api-1.1.jar和commons-pool-1.3.jar(不知道myeclipse怎么搞的,添加Spring功能支持的时候就有了commons-dbcp.jar,居然没有其依赖的commons-pool-x.jar,只好单独添加了,另外,需要将Spring2.0 AOP Liberaries里的asm2.2.3.jar删除,因为好像和Hiberate中的生成代理用的asm.jar冲突,我把Spring2.0 AOP Liberaries排到最后仍然有冲突,所以只好删掉了,不知道大家遇到过这种情况么)。
我们使用myeclise自带的Derby数据库,在里面建一个表BOOK:
ID bigint primary key,autoincrement
NAME varchar(20)
ISBM varchar(20)
AUTHOR varchar(15)
然后利用myeclipse的hibernate反向工程生成领域模型:Book.java, DAO:BookDAO.jar, Book 的映射文件Book.hbm.xml:
生成的代码及配置文件如下:
Book.java:
packageedu.jlu.fuliang.domain;
/***//**
*BookgeneratedbyMyEclipsePersistenceTools
*/
publicclassBookimplementsjava.io.Serializable{
//Fields
privatelongid;
privateStringname;
privateStringisbm;
privateStringauthor;
//Constructors
/***//**defaultconstructor*/
publicBook(){
}
/***//**minimalconstructor*/
publicBook(Stringname,Stringisbm){
this.name=name;
this.isbm=isbm;
}
/***//**fullconstructor*/
publicBook(Stringname,Stringisbm,Stringauthor){
this.name=name;
this.isbm=isbm;
this.author=author;
}
//Propertyaccessors
publiclonggetId(){
returnthis.id;
}
publicvoidsetId(longid){
this.id=id;
}
publicStringgetName(){
returnthis.name;
}
publicvoidsetName(Stringname){
this.name=name;
}
publicStringgetIsbm(){
returnthis.isbm;
}
publicvoidsetIsbm(Stringisbm){
this.isbm=isbm;
}
publicStringgetAuthor(){
returnthis.author;
}
publicvoidsetAuthor(Stringauthor){
this.author=author;
}
}
BookDAO.java:
packageedu.jlu.fuliang.dao;
importjava.util.List;
importorg.apache.commons.logging.Log;
importorg.apache.commons.logging.LogFactory;
importorg.hibernate.LockMode;
importorg.springframework.context.ApplicationContext;
importorg.springframework.orm.hibernate3.support.HibernateDaoSupport;
importedu.jlu.fuliang.domain.Book;
/***//**
*Dataaccessobject(DAO)fordomainmodelclassBook.
*
*@seeedu.jlu.fuliang.domain.Book
*@authorMyEclipsePersistenceTools
*/
publicclassBookDAOextendsHibernateDaoSupport...{
privatestaticfinalLoglog=LogFactory.getLog(BookDAO.class);
//propertyconstants
publicstaticfinalStringNAME="name";
publicstaticfinalStringISBM="isbm";
publicstaticfinalStringAUTHOR="author";
protectedvoidinitDao()...{
//donothing
}
publicvoidsave(BooktransientInstance)...{
log.debug("savingBookinstance");
try...{
getHibernateTemplate().save(transientInstance);
log.debug("savesuccessful");
}catch(RuntimeExceptionre)...{
log.error("savefailed",re);
throwre;
}
}
publicvoiddelete(BookpersistentInstance)...{
log.debug("deletingBookinstance");
try...{
getHibernateTemplate().delete(persistentInstance);
log.debug("deletesuccessful");
}catch(RuntimeExceptionre)...{
log.error("deletefailed",re);
throwre;
}
}
publicBookfindById(Longid)...{
log.debug("gettingBookinstancewithid:"+id);
try...{
Bookinstance=(Book)getHibernateTemplate().get(
"edu.jlu.fuliang.domain.Book",id);
returninstance;
}catch(RuntimeExceptionre)...{
log.error("getfailed",re);
throwre;
}
}
publicListfindByExample(Bookinstance)...{
log.debug("findingBookinstancebyexample");
try...{
Listresults=getHibernateTemplate().findByExample(instance);
log.debug("findbyexamplesuccessful,resultsize:"
+results.size());
returnresults;
}catch(RuntimeExceptionre)...{
log.error("findbyexamplefailed",re);
throwre;
}
}
publicListfindByProperty(StringpropertyName,Objectvalue)...{
log.debug("findingBookinstancewithproperty:"+propertyName
+",value:"+value);
try...{
StringqueryString="fromBookasmodelwheremodel."
+propertyName+"=?";
returngetHibernateTemplate().find(queryString,value);
}catch(RuntimeExceptionre)...{
log.error("findbypropertynamefailed",re);
throwre;
}
}
publicListfindByName(Objectname)...{
returnfindByProperty(NAME,name);
}
publicListfindByIsbm(Objectisbm)...{
returnfindByProperty(ISBM,isbm);
}
publicListfindByAuthor(Objectauthor)...{
returnfindByProperty(AUTHOR,author);
}
publicListfindAll()...{
log.debug("findingallBookinstances");
try...{
StringqueryString="fromBook";
returngetHibernateTemplate().find(queryString);
}catch(RuntimeExceptionre)...{
log.error("findallfailed",re);
throwre;
}
}
publicBookmerge(BookdetachedInstance)...{
log.debug("mergingBookinstance");
try...{
Bookresult=(Book)getHibernateTemplate().merge(detachedInstance);
log.debug("mergesuccessful");
returnresult;
}catch(RuntimeExceptionre)...{
log.error("mergefailed",re);
throwre;
}
}
publicvoidattachDirty(Bookinstance)...{
log.debug("attachingdirtyBookinstance");
try...{
getHibernateTemplate().saveOrUpdate(instance);
log.debug("attachsuccessful");
}catch(RuntimeExceptionre)...{
log.error("attachfailed",re);
throwre;
}
}</span
分享到:
相关推荐
综合以上所述,这本“java web 实战宝典_JSP+Servlet+Struts_2+Hibernate+Spring+Ajax”涵盖了JSP和Servlet作为Web基础技术的知识,以及Struts 2、Spring、Hibernate三个主流的SSH框架,并且提供了Ajax技术的应用...
《Java Web开发技术大全--JSP+Servlet+Struts 2+Hibernate+Spring+AJAX》.(李宁).[PDF].&ckook;
综上所述,《精通Java Web整合开发(Jsp+Ajax+Struts+Hibernate)(第2版)》这本书主要介绍了如何使用JSP、Ajax、Struts、Hibernate以及Spring等技术进行Web应用的开发,涵盖了这些技术的基本概念、核心功能及实际应用...
Java Web整合开发实战--基于Struts 2+Hibernate+Spring.pdf 1章 Web的工作机制 2章 搭建Java Web开发环境 3章 JSP及其相关技术 2篇 表现层框架Struts技术 4章 Struts快速上手 5章 解密Struts之核心文件 6章 ...
2.Action里通过struts2-spring-plugin.jar插件自动根据名字注入。 3.Ajax无刷新异步调用Struts2,返回Json数据,以用户注册为例。 4.在服务端分页查询功能,优点:实时性:跳页才查询。数据量小:只加载当前页的记录...
Java Structs2.1 Spring3.0 Hibernate3.3 CSDN上没看到有人上传过,在别的地方找的,分享一下 part2/4,刚才上传后好像不成功,重新上传一下
在"struts2+hibernate+spring+dwr整合"的项目中,这四个框架的协同工作通常如下: 1. Struts2 负责处理HTTP请求,解析用户的输入,根据配置决定执行哪个Action,Action完成后通过Result返回响应。 2. Spring 作为...
**使用Ajax+Struts+Hibernate+Spring构建在线博客系统** 在Web开发中,Ajax、Struts、Hibernate和Spring是四个非常关键的技术框架,它们分别在不同的层面上为开发者提供了强大的功能支持。本项目是一个基于这些技术...
struts + spring + hibernate + velocity + ajax + jotm + acegi
【标题】"基于hibernate+spring+struts的学生选课系统"是一个常见的Java Web开发框架的集成应用,用于构建高效、稳定且易于维护的学生选课管理平台。这个系统利用了三大主流开源框架:Hibernate作为对象关系映射...
导入myclipse即可,MySql...项目介绍: 1.struts2.8.1+hibernate3+spring2.5 2.统一的jquery表单验证方式,复用性强 3.jquery+ajax应用 4.界面风格漂亮, 本人的毕业设计,有需要者下载参考,项目有很多代码注释
本资料集合了"零基础学Java_Web开发:JSP+Servlet+Struts+Spring+Hibernate+Ajax",涵盖了从初级到进阶的重要概念,帮助初学者系统地掌握Web开发技能。 1. **JSP(JavaServer Pages)技术**: JSP是Java平台上的...
SSH+Ajax+JSON在Web开发中的应用主要集中在构建动态、响应迅速的用户界面,这里我们主要探讨Spring、Struts、Hibernate这三大框架如何与Ajax和JSON技术结合,以实现省市级联选择的效果。 首先,Spring是Java企业级...
在本章中,我们将深入探讨如何开发一个基于Struts、Spring、Hibernate和Ajax的网上信息发布平台。这四个技术是Java Web开发中的核心组件,它们各自承担着不同的职责,共同构建了一个强大而灵活的后端架构。 **...
Myeclipse完美运行的一个商城销售系统,支持后台管理员操作前台修改页面。增加商品,修改商品分类,修改会员,订单... 使用的Strurs2+hibernate+jsp技术,Mysql的数据库,已有数据库sql,导入直接运行!功能非常强大!
在这个"Struts+Spring+Hibernate+Ajax的Demo"中,开发者使用了这些技术来创建一个功能丰富的示例应用。下面将详细阐述这四种技术以及DWR和Dojo在其中的作用。 **Struts** 是一个开源的MVC(Model-View-Controller)...
《构建基于Spring、Struts2、Hibernate、Ajax与JFreeChart的广告管理系统》 在现代企业信息化建设中,广告管理系统的开发是至关重要的,它能够有效地整合广告资源,提高工作效率,减少人工操作错误。本系统利用了...
Ajax、Spring、Hibernate和Struts是Java Web开发中的四大核心技术,它们各司其职,共同构建了一个高效、灵活且功能强大的后端架构。这个小例子将这四个框架整合在一起,用于实现一个登录注册系统,提供了从客户端到...
Java Web开发技术是构建互联网应用程序的关键领域,涵盖了多种框架和技术,包括JSP、Servlet、Struts 2、Hibernate、Spring以及AJAX。这些技术的综合运用可以构建出高效、可扩展且易于维护的Web应用。 **JSP(Java...
该示例使用MyEclipse 5.5 IDE用来整合四个技术(Struts 1.2, Spring 2.0, Hibernate 3.2和Ajax技术)的轻量级的JavaEE。 操作步骤如下: 1. 下载并解压之后,使用MyEclipse导入工程 2. 找到demo目录中的.sql数据库...