当前位置:文档之家› 跟我学Hibernate框架技术——Hibernate中的事务管理及实现实例(第2部分)

跟我学Hibernate框架技术——Hibernate中的事务管理及实现实例(第2部分)

跟我学Hibernate框架技术——Hibernate中的事务管理及实现实例(第2部分)
跟我学Hibernate框架技术——Hibernate中的事务管理及实现实例(第2部分)

hibernate架构图

.Hibernate 架构图 Hibernate 是一个开放源代码的对象关系映射框架,它对JDBC 进行了非常轻量级的对象封装,使得Java 程序员可以随心所欲的使用对象编程思维来操纵数据库。Hibernate 可以应用在任何使用JDBC 的场合,既可以在Java 的客户端程序使用,也可以在Servlet/JSP 的Web 应用中使用,最具革命意义的是,Hibernate 可以在应用EJB 的J2EE 架构中取代CMP ,完成数据持久化的重任。 Hibernate 的核心接口一共有5 个,分别为:Session 、SessionFactory、Transaction 、Query 和Configuration 。这5 个核心接口在任何开发中都会用到。通过这些接口,不仅可以对持久化对象进行存取,还能够进行事务控制。下面对这五个核心接口分别加以介绍。 ·Session 接口:Session 接口负责执行被持久化对象的CRUD 操作(CRUD 的任务是完成与数据库的交流,包含了很多常见的SQL 语句。) 。但需要注意的是Session 对象是非线程安全的。同时,Hibernate 的session 不同于JSP 应用中的HttpSession 。这里当使用session 这个术语时,其实指的是Hibernate 中的session ,而以后会将HttpSesion 对象称为用户session 。 ·SessionFactory 接口:SessionFactory 接口负责初始化Hibernate 。它充当数据存储源的代理,并负责创建Session 对象。这里用到了工厂模式。需要注意的是SessionFactory 并不是轻量级的,因为一般情况下,一个项目通常只需要一个SessionFactory 就够,当需要操作多个数据库时,可以为每个数据库指定一个SessionFactory 。

整合SSH三大框架介绍

一.在MyEclipse里先建立一个Web project 的项目,选最新版本的java ee。 二.添加struts2框架支持 1.引入struts2必须得几个jar包,放在WebRoot->WEB-INF->lib 目录下。 2.将WEB应用部署到tomcat服务器上:找到tomacat的安装目录Tomcat6.x\apache-tomcat-6.0.33\conf,打开其中的server.xml文件,在文件末尾上面加入例如 这样的句子,其中path的值为你需要访问网站的上下文,docBase的值为该web项目的WebRoot所在的目录,最后一个readloadable最好选true。 3.在WebRoot->WEB-INF->web.xml中加入struts2的过滤

器将部署好的应用纳入到struts2的管辖范围类,具体代码如下 struts2 org.apache.struts2.dispatcher.ng.filter.StrutsPre pareAndExecuteFilter struts2 /* 4.在web项目的src目录下,建一个struts.xml文件,这里是处理struts整个流程的文件。在其中加入 上面的name随便取,extends绝对不能变。 5.这样以后,启动tomcat服务器看看能不能正常启动,如果正常启动后,在浏览器上访问,http://localhost/上下文/index.jsp看能不能进入,若能进入则表示struts2的框架已经成功加到web项目中了,可以开始下一步了。

Struts2和hibernate框架整合实现简单的注册登陆功能

Struts2和hibernate框架整合实现简单 的注册登陆功能 项目结构: LoginAction.Java package action; import https://www.doczj.com/doc/eb2669934.html,er; import https://www.doczj.com/doc/eb2669934.html,erDAO; import com.opensymphony.xwork2.ActionSupport; public class LoginAction extends ActionSupport { /** * */ private static final long serialVersionUID = 1L; private User user; public User getUser() { return user;} public void setUser(User user) { https://www.doczj.com/doc/eb2669934.html,er = user;} public String execute()throws Exception{ if((user=new UserDAO().LoginCheck(user.getUsername(), user.getPassword(),user.getRole()))==null){

return ERROR; } if(user.getRole()=="1"){ return "admin"; }else{ return SUCCESS;} } } RegistAction.java package action; import https://www.doczj.com/doc/eb2669934.html,er; import https://www.doczj.com/doc/eb2669934.html,erDAO; import com.opensymphony.xwork2.ActionSupport; public class RegistAction extends ActionSupport { /** * */ private static final long serialVersionUID = 1L; private User user=null; private String repassword; public String getRepassword() { return repassword; } public void setRepassword(String repassword) { this.repassword = repassword; } //UserDAO userDao=new UserDAO(); @Override public String execute() throws Exception { User selectUser=new User(); if((selectUser=new UserDAO().selectRegist(user.getUsername()))==null){ User u=new User(); u.setUsername(user.getUsername()); u.setPassword(user.getPassword()); new UserDAO().saveRegist(u); return "success"; }else{ return "error";

hibernate框架必问的面试题

108.为什么要使用 hibernate? hibernate 是对 jdbc 的封装,大大简化了数据访问层的繁琐的重复性代码。 hibernate 是一个优秀的 ORM 实现,很多程度上简化了 DAO 层的编码功能。 可以很方便的进行数据库的移植工作。 提供了缓存机制,是程序执行更改的高效。 109.什么是 ORM 框架? ORM(Object Relation Mapping)对象关系映射,是把数据库中的关系数据映射成为程序中的对象。 使用 ORM 的优点:提高了开发效率降低了开发成本、开发更简单更对象化、可移植更强。 115.hibernate 中如何在控制台查看打印的 SQL 语句? 在 Config 里面把 hibernate. show_SQL 设置为 true 就可以。但不建议开启,开启之后会降低程序的运行效率。 116.hibernate 有几种查询方式? 三种:hql、原生 SQL、条件查询 Criteria。 117.hibernate 实体类可以被定义为 final 吗? 实体类可以定义为 final 类,但这样的话就不能使用 hibernate 代理模式下的延迟关联提供性能了,所以不建议定义实体类为 final。 118.在 hibernate 中使用 Integer 和 int 做映射有什么区别? Integer 类型为对象,它的值允许为 null,而 int 属于基础数据类型,值不能为 null。 119.hibernate 是如何工作的? 读取并解析配置文件。 读取并解析映射文件,创建 SessionFactory。 打开 Session。 创建事务。 进行持久化操作。 提交事务。 关闭 Session。 关闭 SessionFactory。 120.get()和 load()的区别? 数据查询时,没有 OID 指定的对象,get() 返回 null;load() 返回一个代理对象。 load()支持延迟加载;get() 不支持延迟加载。

Struts+Spring+Hibernate框架搭建

整合SSH框架 整合框架版本:hibernate-distribution-3.6.0.Final-dist + spring-framework-2.5.6.SEC01-with-dependencies + struts-2.1.8.1 一、搭建工具 Windows 、Tomcat 6.0+ 、MyEclipse、SQLServer2008 R2 、Google 二、创建工程 新建WEB项目工程(MyEclipse),包含web.xml配置文件。 三、添加框架环境Junit4 右击新建的项目,选择Build Path —> Add Library —> Junit —> 选择Junit4 —> 确定完成单元测试的添加。 四、添加框架环境Struts2 1.解压struts- 2.1.8.1 ,如下图所示: 可在apps文件里,随机选择一个.war文件解压,到WEB-INF→lib下的基础jar文件:

复制黏贴添加到项目工程的lib下。也可将lib下的全部jar(71个)都复制到项目中来,不过很多用不到。我们崇尚即用即加的原则…… 2. 配置struts.xml和web.xml文件,如下: web.xml: ItcastOA struts2 org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndE xecuteFilter struts2 /* index.html index.htm index.jsp default.html default.htm default.jsp struts.xml:

Struts、Spring、Hibernate三大框架的原理和优点

Struts的原理和优点. Struts工作原理 MVC即Model-View-Controller的缩写,是一种常用的设计模式。MVC 减弱了业务逻辑接口和数据接口之间的耦合,以及让视图层更富于变化。MVC的工作原理,如下图1所示: Struts 是MVC的一种实现,它将Servlet和JSP 标记(属于J2EE 规范)用作实现的一部分。Struts继承了MVC的各项特性,并根据J2EE的特点,做了相应的变化与扩展。Struts的工作原理, 视图:主要由JSP生成页面完成视图,Struts提供丰富的JSP 标签库:Html,Bean,Logic,Template等,这有利于分开表现逻辑和程序逻辑。 控制:在Struts中,承担MVC中Controller角色的是一个Servlet,叫ActionServlet。ActionServlet是一个通用的控制组件。这个控制组件提供了处理所有发送到Struts的HTTP请求的入口点。它截取和分发这些请求到相应的动作类(这些动作类都是Action类的子类)。另外控制组件也负责用相应的请求参数填充Action From(通常称之为FromBean),并传给动作类(通常称之为ActionBean)。动作类实现核心商业逻辑,它可以访问java bean 或调用EJB。最后动作类把控制权传给后续的JSP 文件,后者生成视图。所有这些控制逻辑利用Struts-config.xml文件来配置。 模型:模型以一个或多个java bean的形式存在。这些bean分为三类:Action Form、Action、JavaBean or EJB。Action Form通常称之为FormBean,封装了来自于Client的用户请求信息,如表单信息。Action通常称之为ActionBean,获取从ActionSevlet传来的FormBean,取出FormBean中的相关信息,并做出相关的处理,一般是调用Java Bean或EJB等。 流程:在Struts中,用户的请求一般以*.do作为请求服务名,所有的*.do请求均被指向ActionSevlet,ActionSevlet根据Struts-config.xml中的配置信息,将用户请求封装成一个指定名称的FormBean,并将此FormBean传至指定名称的ActionBean,由ActionBean完成相应的业务操作,如文件操作,数据库操作等。每一个*.do均有对应的FormBean名称和ActionBean名称,这些在Struts-config.xml中配置。 核心:Struts的核心是ActionSevlet,ActionSevlet的核心是Struts-config.xml。 Struts优缺点 优点: 1.开源软件,能更深入的了解其内部实现机制。 2.Taglib标记库,灵活动用,能大大提高开发效率。 3.页面导航使系统的脉络更加清晰。通过一个配置文件,即可把握整个系统各部分之间的联系,这对于后期的维护有着莫大的好处。尤其是当另一批开发者接手这个项目时,这种优势体现得更加明显。

Struts+Hibernate+Spring+三个框架简介

Struts 是一个为开发基于模型(Model)-视图(View)-控制器(Controller)(MVC)模式的应用架构的开源框架,是利用Java Servlet和JSP构建Web应用的一项非常有用的技术。由于Struts能充分满足应用开发的需求,简单易用,敏捷迅速,因而吸引了众多的开发人员的关注。 首先事件是指从客户端页面(浏览器)由用户操作触发的事件,Struts使用Action来接受浏览器表单提交的事件,这里使用了Command 模式,每个继承Action的子类都必须实现一个方法execute。 struts重要的表单对象ActionForm是一种对象,它代表了一种应用,这个对象中至少包含几个字段,这些字段是Jsp页面表单中的input字段,因为一个表单对应一个事件,所以,当我们需要将事件粒度细化到表单中这些字段时,也就是说,一个字段对应一个事件时,单纯使用Struts就不太可能,当然通过结合JavaScript也是可以转弯实现的。 Struts是一个基于Sun J2EE平台的MVC框架,主要是采用Servlet和JSP技术来实现的。Struts把Servlet、JSP、自定义标签和信息资源(message resources)整合到一个统一的框架中,开发人员利用其进行开发时不用再自己编码实现全套MVC模式,极大的节省了时间,所以说Struts是一个非常不错的应用框架。 Struts框架可分为以下四个主要部分: 1、模型(Model),本质上来说在Struts中Model是一个Action类(这个会在后面详细讨论),开发者通过其实现商业逻辑,同时用户请求通过控制器(Controller)向Action的转发过程是基于由struts- config.xml文件描述的配置信息的。 2、视图(View),View是由与控制器Servlet配合工作的一整套JSP定制标签库构成,利用她们我们可以快速建立应用系统的界面。 3、控制器(Controller),本质上是一个Servlet,将客户端请求转发到相应的Action类。

Struts框架和Hibernate框架的整合完整版介绍

Struts框架和Hibernate框架的整合 1、首先写一个student的实体类,命名为:StudentEntity.java package com.liu.student.entity; /** * 数据库表的映射实体类文件 * @author Calasin */ public class StudentEntity { private String s_id;// 学号 private String s_name;// 姓名

private int s_age;// 年龄 public String getS_id() { return s_id; } public void setS_id(String s_id) { this.s_id = s_id; } public String getS_name() { return s_name; } public void setS_name(String s_name) { this.s_name = s_name; } public int getS_age() { return s_age; } public void setS_age(int s_age) { this.s_age = s_age; } public String toString() { return"StudentEntity [s_id="+ s_id+ ", s_name="+ s_name + ", s_age=" + s_age + "]"; } } 2、接着写student实体类StudentEntity的配置文件:StudentEntity.hbm.xml

Java框架介绍

Java框架介绍

二零一五年九月 目录 一技术简介3 1.1 总体介绍3 1.2 Maven介绍3 1.3 Spring MVC介绍4 1.4 Hibernate介绍4 二配置说明5 2.1 web.xml文件5 2.2 applicationContext-resourse.xml文件6 2.3 applicationContext-service.xml文件6 2.4 applicationContext-source.xml文件6 2.5 applicationContext-source.xml文件7 2.6 spring-servlet.xml文件8 2.7 pom.xml文件8 三源代结构9 3.1 整体结构9 3.2 Dao层9 3.3 Service层9 3.4 Controller层9 3.5 其他10 四业务操作流程(重要)11 4.1 操作图示11 4.2 操作实例11 五突出功能15 5.1 权限管理15

一技术简介 1.1 总体介绍 该框架总体使用Maven+SpringMVC+Hibernate。除了可以较好的进行数据交互,框架各层代码比较分明,也更加系统,基础方法都已集成,对于开发者的帮助事半功倍。 1.2 Maven介绍 maven是一个很好的项目管理或者项目构建工具。 首先是maven的“约定优于配置”,即在maven中并不是完全不可以修改的,他们只是一些配置的默认值而已。但是使用者除非必要,并不需要去修改那些约定内容。maven 默认的文件存放结构如下: /项目目录 o pom.xml 用于maven的配置文件 o/src源代码目录 ?/src/main 工程源代码目录 ?/src/main/java 工程java源代码目录 ?/src/main/resource 工程的资源目录 ?/src/main/webapp工程的jsp等前端文件目录 ?/src/test 单元测试目录 ?/src/test/java o/target 输出目录,所有的输出物都存放在这个目录下 ?/target/classes 编译之后的class文件 其次,构建项目或项目开发过程中,项目所有依赖的版本库,比如spring和hibernate相关依赖库,只需要在pom.xml增加配置信息,如果maven仓库中有该依赖文件就直接引用,没有则会从指定地址下载该依赖文件到本地仓库,供项目使用。即对于项目所有的依赖库,可以进行统一管理,不需要分别配置。 最后,maven也可以进行多项目管理,一般来说,maven要求同一个工程的所有子项目都放置到同一个目录下,每一个子目录代表一个项目,所有具体子项目的pom.xml都会继承总项目pom的内容,取值为子项目pom内容优先。

Hibernate实现(注解方式)

Hibernate实现(注解方式) 注解方式: 注解的方式与xml很很多类似: 首先是需要加入4个jar包:hibernate-commons-annotations.jar 、 hibernate-annotations.jar ejb3-persistence.jar 、 hibernate-jpa-2.0-api-1.0.1.Final.jar 下面是不同的地方: (1):hibernate.hbm.xml 文件中把引用:xxx.hbm.xml改为引用实体类: 即把: 改为: (2):获取SessionFactory方式发生了变化: 即:由SessionFactory sf = new Configuration().configure().buildSessionFactory() 改为:SessionFactory sf = new AnnotationConfiguration().configure().buildSessionFactory() (3):注解方式不需要在xxx.hbm.xml把实体类与表进行映射。而采用在实体类中进行注解。 注意:(1):如果实体类属性名与表字段名不一致的时候,要么都注解在属性前,要么都注解在get方法前。不能部分注解在属性前,部分注解在方法前。 (2):如果实体类属性名与表字段名一致的时候,可以部分注解在属性前,部分注解在方法前。 (3):如果在实体类中某些属性不注解:(属性和get都不写注解),默认为表字段名与实体类属性名一致。 (4):如果实体类的某个成员属性不需要存入数据库中,使用@Transient 进行注解就可以了。即类似于:(xxx.hbm.Xml配置中的某些字段不写(就是不需要对这个成员属性进行映射)) (5):表名称可以在实体类前进行注解。 (6):所有这些注解在:javax.persistence包下。而不是在hibernate包中。 --------------------------------------------------------------------------------------------------------------------- @Entity // 表示为实体类 @Table(name="t_teacher") // 表名注解 publicclass Teacher implements Serializable { privateint id; private String username; privateint age; @Id// 表示主键 @GenericGenerator(name = "generator", strategy = "increment") @GeneratedValue(generator = "generator") // 自增长@Column(name = "id") // 类属性对应着表字段 publicint getId() { return id; } public void setId(int id) { this.id = id; }

Spring,Hibernate工作原理以及MVC结构的简介

一、spring工作原理: 1.spring mvc请所有的请求都提交给DispatcherServlet,它会委托应用系统的其他模块负责负责对请求进行真正的处理工作。 2.DispatcherServlet查询一个或多个HandlerMapping,找到处理请求的Controller. 3.DispatcherServlet请请求提交到目标Controller 4.Controller进行业务逻辑处理后,会返回一个ModelAndView 5.Dispathcher查询一个或多个ViewResolver视图解析器,找到ModelAndView 对象指定的视图对象 6.视图对象负责渲染返回给客户端。 二、为什么要用spring: AOP 让开发人员可以创建非行为性的关注点,称为横切关注点,并将它们插入到应用程序代码中。使用 AOP 后,公共服务(比如日志、持久性、事务等)就可以分解成方面并应用到域对象上,同时不会增加域对象的对象模型的复杂性。 IOC 允许创建一个可以构造对象的应用环境,然后向这些对象传递它们的协作对象。正如单词倒置所表明的,IOC 就像反过来的 JNDI。没有使用一堆抽象工厂、服务定位器、单元素(singleton)和直接构造(straight construction),每一个对象都是用其协作对象构造的。因此是由容器管理协作对象(collaborator)。 Spring即使一个AOP框架,也是一IOC容器。 Spring 最好的地方是它有助于您替换对象。有了 Spring,只要用 JavaBean 属性和配置文件加入依赖性(协作对象)。然后可以很容易地在需要时替换具有类似接口的协作对象。 三、请你谈谈SSH整合: SSH: Struts(表示层)+Spring(业务层)+Hibernate(持久层) Struts: Struts是一个表示层框架,主要作用是界面展示,接收请求,分发请求。 在MVC框架中,Struts属于VC层次,负责界面表现,负责MVC关系的分发。(View:沿用JSP,HTTP,Form,Tag,Resourse ;Controller:ActionServlet, struts-config.xml,Action) Hibernate: Hibernate是一个持久层框架,它只负责与关系数据库的操作。

20171124魏博文Springmvc Hibernate框架结合使用

Springmvc Hibernate框架结合使用1、配置需要的配置文件 applicationContext-mvc.xml applicationContext.xml 需要的属性文件jdbc.properties

log4j.properties ### set log levels ### log4j.rootLogger = INFO,C,D,E ### console ### log4j.appender.C = org.apache.log4j.ConsoleAppender log4j.appender.C.Target = System.out https://www.doczj.com/doc/eb2669934.html,yout = org.apache.log4j.PatternLayout https://www.doczj.com/doc/eb2669934.html,yout.ConversionPattern = [Factory][%p][%-d{yyyy-MM-ddHH:mm:ss}]%C.%M(%L)|%m%n ### log file ### log4j.appender.D = org.apache.log4j.DailyRollingFileAppender log4j.appender.D.File = ../logs/factory/factory.log log4j.appender.D.Append = true log4j.appender.D.Threshold = INFO https://www.doczj.com/doc/eb2669934.html,yout = org.apache.log4j.PatternLayout https://www.doczj.com/doc/eb2669934.html,yout.ConversionPattern = [Factory][%p][%-d{yyyy-MM-ddHH:mm:ss}]%C.%M(%L)|%m%n ### exception ### log4j.appender.E = org.apache.log4j.DailyRollingFileAppender log4j.appender.E.File = ../logs/factory/factory_error.log log4j.appender.E.Append = true log4j.appender.E.Threshold = ERROR https://www.doczj.com/doc/eb2669934.html,yout = org.apache.log4j.PatternLayout https://www.doczj.com/doc/eb2669934.html,yout.ConversionPattern =[Factory][%p][%-d{yyyy-MM-ddHH\:mm\:ss}]%C.%M(%L)|%m%n

搭建hibernate框架

1. 搭建hibernate框架 1.1 导入hibernate包 /HIBERNATE_HOME/lib/required/*.jar mysql-connector-java-5.1.22-bin.jar 1.2 加入hibernate核心配置文件 /HIBERNATE_HOME/project/etc/hibernate.cfg.xml 1.3 加入针对数据库的配置 jdbc:mysql://localhost:3306/oa com.mysql.jdbc.Driver root org.hibernate.dialect.MySQLDialect true 1.4 编写实体类和映射配置文件 如: Department.hbm.xml Employee.hbm.xml Department.java Employee.java 1.5 将映射文件添加到核心配置文件(hibernate.cfg.xml)中 2. 使用hibernate 2.1 获取session public class SessionFactoryUtils { private static SessionFactory factory = null; static { Configuration cfg = new Configuration().configure(); // 新版本需要加入ServiceRegistry对象来创建SessionFactory ServiceRegistryBuilder builder = new ServiceRegistryBuilder(); builder.applySettings(cfg.getProperties()); ServiceRegistry serviceRegistry = builder.buildServiceRegistry(); // 创建会话工厂 factory = cfg.buildSessionFactory(serviceRegistry); }

Hibernate实战

作者简介 Christian Bauer,Hibernate核心开发人员,并负责维护Hibernate的文档与网站。目前他是Red Hat公司JBoss部门负责Hibernate、EJB 3.0和Seam的产品经理。 编辑推荐 Hibernate之父亲自执笔,无可替代的Hibernate和ORM技术圣经,职业Java程序员必备秘籍。 持久化是现代企业级应用的核心特性。作为Java世界最流行的持久化框架,Hibernate已经成为开发Java EE应用系统中不可替代的支柱之一。随着EJB 3.0和Java Persistence标准的发布,Hibernate也迎来了更加成熟的新版本——Hibernate 3.2。新版本实现了Java Persistence标准,既可以用于流行的开源技术组合(如Spring、Struts和Seam等)。也可以与其他EJB 3.0组件和Java EE服务集成。

本书通过一个应用将数百个例子融合起来,不仅深入剖析了Hibernate 3.2和Java Persistence丰富的编程模型。还深刻阐述了数据库设计、ORM和优化等方面的基本原则、策略和最佳实践。书中处处闪烁着作者超凡的真知灼见,将大大升华读者对ORM乃至企业级应用开发的理解。 本书简介 本书全面讲述了Hibernate和Java Persistence,并对两者进行了详细的对比分析。书中通过一个应用将数百个例子融合起来,不仅深入剖析了Hibernate 3.2和Java Persistence丰富的编程模型,还深刻阐述了数据库设计、对象/关系映射(ORM)和优化等方面的基本原则、策略和最佳实践。书中处处闪烁着作者超凡的真知灼见,将大大升华读者对ORM乃至企业级应用开发的理解。 本书适合广大的开发人员,从ORM的初学者到经验丰富的开发人员。 目录 第一部分 从Hibernate和EJB 3.0开始  第1章 理解对象/关系持久化  1.1 什么是持久化  1.1.1 关系数据库  1.1.2 理解SQL  1.1.3 在Java中使用SQL  1.1.4 面向对象应用程序中的持久化  1.2 范式不匹配  1.2.1 粒度问题  1.2.2 子类型问题  1.2.3 同一性问题  1.2.4 与关联相关的问题  1.2.5 数据导航的问题  1.2.6 不匹配的代价  1.3 持久层和其他层  1.3.1 分层架构  1.3.2 用SQL/JDBC手工编写持久层  1.3.3 使用序列化  1.3.4 面向对象的数据库系统  1.3.5 其他选项  1.4 ORM  1.4.1 什么是ORM  1.4.2 一般的ORM问题  1.4.3 为什么选择ORM  1.4.4 Hibernate、EJB 3和JPA简介  1.5 小结   第2章 启动项目  2.1 启动Hibernate项目  2.1.1 选择开发过程  2.1.2 建立项目  2.1.3 Hibernate配置和启动  2.1.4 运行和测试应用程序

Struts+Spring+Hibernate框架实用教程(SSH框架)

Struts+Spring+Hibernate整合 教程v1.0 作者: 陈文光 作者Blog: https://www.doczj.com/doc/eb2669934.html, 声明 本文内容根据个人所知的以及网络文章整理而成, 如有侵权, 请与本人联系. 菜鸟写的文章,难免有错误,望体谅以及给我修正 本文内容仅供参考, 不得用于商业目的. 转载请著名作者和出处. 日期: 2008-01-06

1 SSH整合理念 (3) 1.1 框架 (3) 1.2 应用层 (4) 1.2.1 表现层 (4) 1.2.2 持久层 (4) 1.2.3 业务层 (5) 1.2.4 领域模型层 (6) 1.3 整合一个简单的例子 (6) 2 Spring整合Struts (6) 3.1 三个小窍门 (6) 3.2 窍门1. 使用Spring 的ActionSupport (7) 3.3 窍门2. 覆盖RequestProcessor (8) 3.4 窍门3. 将动作管理委托给Spring (9) 3.5 拦截Struts (10) 2.5.1. 前提: (10) 2.5.2. 使用拦截器的步骤: (10) 2.5.3. 一个例子: (10) 3 Spring整合Hibernate (11) 3.1 为什么要整合? (11) 3.2 配置数据源 (11) 3.3 配置sessionfactory (13) 3.4 配置事务 (15)

1SSH整合理念 1.1框架 用java来建立一个很有价值的web 应用不是一个简单的任务。在架构这个应用时要考虑很多的因素和问题。从更高的层次来看,开发人员面临着关于如何构建用户接口,何处驻留业务逻辑,以及如何实现数据持久性这些问题。这3层都有各自的问题需要回答。而每一层又需要实现那些技术?应用如何设计来进行松散耦合并能进行灵活变更?应用架构是否允许某一层变更而不影响到其它的层次? 应用应该如何处理容器一级的服务比如事务? 在为你的应用创建一个架构之前有许多问题需要澄清。幸运的是,有很多开发者都意识到这个问题,并建立了很多框架来解决这些问题。一个良好的框架可以让开发人员减轻重新建立解决复杂问题方案的负担和精力;它可以被扩展以进行内部的定制化;并且有强大的用户社区来支持它。框架通常能很好的解决一个问题。然而,你的应用是分层的,可能每一个层都需要各自的框架。仅仅解决UI问题并不意味着你能够很好的将业务逻辑和持久性逻辑和UI 组件很好的耦合。例如,你不应该使具有JDBC代码的业务逻辑放入控制器之中,这不是控制器应该提供的功能。一个UI 控制器应该是轻量化的组件,由它代表对UI范围之外的其它应用层的服务调用。良好的框架自然地形成代码分离的原则。更为重要的是,框架减轻了开发人员从头构建持久层代码的精力,从而集中精力来应用逻辑上,这对客户端来说更为重要。 本文讨论了如何结合几个著名的框架来达到松散耦合,如何设计你的架构,以及如何达到各个层次的一致性设计。面临的挑战是,将框架整合起来,以使每一层都向另外的层次以一种松散的方式来暴露接口,而不管底层功能使用的是什么技术。本文还讨论整合3种著名开源框架的一种策略。对表现层,我们使用Struts;业务层使用Spring;对于持久层我们使用的是Hibernate。你尽可以取代这里的某个框架而使用你喜欢的框架已达到同样的效果。图1显示了框架被整合起来时,从最高层次看到的视图。

Java框架简介

Java框架简介 AJAX ajax简介 AJAX全称“Asynchronous JavaScript and XML”(异步JavaScript和XML),是指一种创建交互式网页应用的网页开发技术。 它有机地包含了以下几种技术: 基于web标准(standards-based presentation)XHTML+CSS的表示; 使用DOM(Document Object Model)进行动态显示及交互; 使用XML和XSLT进行数据交换及相关操作; 使用XMLHttpRequest进行异步数据查询、检索; 使用JavaScript将所有的东西绑定在一起。 类似于DHTML或LAMP,AJAX不是指一种单一的技术,而是有机地利用了一系列相关的技术。事实上,一些基于AJAX的“派生/合成”式(derivative/composite)的技术正在出现,如“AFLAX”。 ajax优势 传统的web应用允许用户填写表单(form),当提交表单时就向web服务器发送一个请求。服务器接收并处理传来的表单,然后返回一个新的网页。这个做法浪费了许多带宽,因为在前后两个页面中的大部分HTML代码往往是相同的。 由于每次应用的交互都需要向服务器发送请求,应用的响应时间就依赖于服务器的响应时间。这导致了用户界面的响应比本地应用慢得多。与此不同,AJAX应用可以仅向服务器发送并取回必需的数据,它使用SOAP 或其它一些基于XML的web service接口,并在客户端采用JavaScript处理来自服务器的响应。因为在服务器和浏览器之间交换的数据大量减少,结果我们就能看到响应更快的应用。同时很多的处理工作可以在发出请求的客户端机器上完成,所以Web服务器的处理时间也减少了。 Struts Struts是一个基于Sun J2EE平台的MVC框架,主要是采用Servlet和JSP技术来实现的。 由于Struts能充分满足应用开发的需求,简单易用,敏捷迅速,在过去的一年中颇受关注。Struts 把Servlet、JSP、自定义标签和信息资源(message resources)整合到一个统一的框架中,开发人员利用其进行开发时不用再自己编码实现全套MVC模式,极大的节省了时间,所以说Struts是一个非常不错的应用框架。【StrutsIDE:用于Struts辅助开发的一个Eclipse插件】 Struts框架可分为以下四个主要部分,其中三个就和MVC模式紧密相关: 1、模型(Model),本质上来说在Struts中Model是一个Action类(这个会在后面详细讨论),开发者通过其实现商业逻辑,同时用户请求通过控制器(Controller)向Action的转发过程是基于由struts-config.xml文件描述的配置信息的。 2、视图(View),View是由与控制器Servlet配合工作的一整套JSP定制标签库构成,利用她们我们可以快速建立应用系统的界面。 3、控制器(Controller),本质上是一个Servlet,将客户端请求转发到相应的Action类。 4、一堆用来做XML文件解析的工具包,Struts是用XML来描述如何自动产生一些JavaBean的属性的,此外Struts还利用XML来描述在国际化应用中的用户提示信息的(这样一来就实现了应用系统的多语言支持)。 Struts2 Struts2是一个web应用框架。它不是一个Struts的新的发布版本,而是一个全新的框架。Struts2 是第二代基于Model-View-Controller (MVC)模型的web应用框架。 Struts2是java企业级web应用的可扩展性的框架。它是WebWork和Struts社区合并后的产物。这一版本的Struts2声称,Struts2会接近于

相关主题
文本预览
相关文档 最新文档