Hibernate框架之间的关系是什么以及怎么处理
展开全部
Hibernate是一个开放源代码的对象关系映射框架。
对JDBC进行了非常轻量级的对象封装,使Java程序员可以随心所欲地使用对象编程思维来操纵数据库,
Hibernate持久化对象是基于简单的Java对象(Plain Old Java Objects)以及Java对象集合。
Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP
的Web应用中使用,最具有革命意义的是,Hibernate可以应用EJB的J2EE架构中取代CMP,
完成数据库持久化的重任。
注:
不要将持久化层逻辑与视图表现层逻辑或者业务逻辑层混合在一起。
要避免正在JSP等视图表现层组件直接访问数据库,将数据持久代码都放在持久层中,
这样程序更具有柔韧性且可以灵活地改变而不会影响到其他层。
举一个例子来讲:
如果将Hibernate用其他ORM框架(如JDO或IBATIS)来替换,只需要修改持久层,而不需要修改其他层的代码。
Java开源--Web框架Struts
在视图表现层,采用Struts框架构建Java Web应用程序。
Web应用程序不同于传统上的网站,这些网站通常仅提供静态页面,而Web应用程序可以和数据交互,
当用户与系统交互的时候,业务逻辑可以给用户一个用户化的响应。
在Web应用程序发展初期,Web应用程序通常是基于JSP(Java Server Pages)的,
使用JSP编写代码时通常读取数据库、页面设计代码以及控制流程代码都混合在一起
(维护过于复杂,亟待优化,尤其是大型项目)。
MVC(Model-View-Controller)体系结构的出现
Model表示业务逻辑或者是数据库代码,View代表页面设计代码,而Model本质上是一个Servlet,
将客户请求转发到相应的Action类。
Struts是一个为开发基于模型(Model)-视图(View)-控制器(Controller)模式应用框架的开源框架。
Struts提供了什么功能:
1、管理用户的请求,做出相应的响应
2、提供一个流程控制器,委派调用业务逻辑和其他上层处理
3、处理异常
4、装配需要显示的数据模型
5、执行页面验证
下面所提及的虽然Struts会涉及,但是不应该在视图层中出现。在视图层中引入这些代码,后期维护艰难。
6、直接与数据库通信的代码
7、系统的业务逻辑以及验证代码
8、事务处理
Java开源--J2EE框架Spring
spring是一个轻量级的J2EE框架。
核心是一个轻量级容器,实现IOC模式的容器,本身是一个全方位的整合框架,在Spring框架下可实现
对多个子框架的组合。Spring的核心即IoC/DI的容器,可以为设计人员完成各个组件之间的依赖关系的注入,
使组件之间的依赖性减小,提高了组件的重用性,容器特性使组件可以轻易地加入和脱离框架。
Spring的另一个方面使支持AOP,然而AOP框架知识Spring支持的其中一种框架,所以说Spring框架是AOP框架
并不是一种恰当的描述,但是Spring对AOP的支持使人们更加关注于Spring的AOP方面的能力,也成了Spring的
一大特色。
此外,Spring提供了一个自己的MVC Web框架的解决方案,但Spring并不要求程序员一定要使用该MVC Web框架,
而是可以使用自己所熟悉的MVC Web框架与Spring结合,如Struts Webwork等,它们都可以与Spring整合而
成为适合的解决方案。
Spring还提供其他方面的整合,比如持久化方面的整合,JDBC、O/R Mapping工具、事务处理等,Spring自己也做了多方面整合的努力,因此Spring是一个全方位的框架。
最后:
架构采用多层非分布式的结构,除数据库这一层外,可以分为表现层(Presentation Layer)、业务逻辑层(Bussiness Logic Layer)和数据持久层(Persistence Layer),这3层将存在于同一个Web容器中,
作为一个整体提供J2EE服务。
定义良好的接口可以相对隔离每一层的职责,使应用更简单,并且有很好的伸缩性。数据持久层是介于
业务逻辑层和数据库层之间的桥梁,它封装了与数据库层交互的逻辑,利用ORM(对象关系映射)技术可以
完全实现面向对象的逻辑处理。
对JDBC进行了非常轻量级的对象封装,使Java程序员可以随心所欲地使用对象编程思维来操纵数据库,
Hibernate持久化对象是基于简单的Java对象(Plain Old Java Objects)以及Java对象集合。
Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP
的Web应用中使用,最具有革命意义的是,Hibernate可以应用EJB的J2EE架构中取代CMP,
完成数据库持久化的重任。
注:
不要将持久化层逻辑与视图表现层逻辑或者业务逻辑层混合在一起。
要避免正在JSP等视图表现层组件直接访问数据库,将数据持久代码都放在持久层中,
这样程序更具有柔韧性且可以灵活地改变而不会影响到其他层。
举一个例子来讲:
如果将Hibernate用其他ORM框架(如JDO或IBATIS)来替换,只需要修改持久层,而不需要修改其他层的代码。
Java开源--Web框架Struts
在视图表现层,采用Struts框架构建Java Web应用程序。
Web应用程序不同于传统上的网站,这些网站通常仅提供静态页面,而Web应用程序可以和数据交互,
当用户与系统交互的时候,业务逻辑可以给用户一个用户化的响应。
在Web应用程序发展初期,Web应用程序通常是基于JSP(Java Server Pages)的,
使用JSP编写代码时通常读取数据库、页面设计代码以及控制流程代码都混合在一起
(维护过于复杂,亟待优化,尤其是大型项目)。
MVC(Model-View-Controller)体系结构的出现
Model表示业务逻辑或者是数据库代码,View代表页面设计代码,而Model本质上是一个Servlet,
将客户请求转发到相应的Action类。
Struts是一个为开发基于模型(Model)-视图(View)-控制器(Controller)模式应用框架的开源框架。
Struts提供了什么功能:
1、管理用户的请求,做出相应的响应
2、提供一个流程控制器,委派调用业务逻辑和其他上层处理
3、处理异常
4、装配需要显示的数据模型
5、执行页面验证
下面所提及的虽然Struts会涉及,但是不应该在视图层中出现。在视图层中引入这些代码,后期维护艰难。
6、直接与数据库通信的代码
7、系统的业务逻辑以及验证代码
8、事务处理
Java开源--J2EE框架Spring
spring是一个轻量级的J2EE框架。
核心是一个轻量级容器,实现IOC模式的容器,本身是一个全方位的整合框架,在Spring框架下可实现
对多个子框架的组合。Spring的核心即IoC/DI的容器,可以为设计人员完成各个组件之间的依赖关系的注入,
使组件之间的依赖性减小,提高了组件的重用性,容器特性使组件可以轻易地加入和脱离框架。
Spring的另一个方面使支持AOP,然而AOP框架知识Spring支持的其中一种框架,所以说Spring框架是AOP框架
并不是一种恰当的描述,但是Spring对AOP的支持使人们更加关注于Spring的AOP方面的能力,也成了Spring的
一大特色。
此外,Spring提供了一个自己的MVC Web框架的解决方案,但Spring并不要求程序员一定要使用该MVC Web框架,
而是可以使用自己所熟悉的MVC Web框架与Spring结合,如Struts Webwork等,它们都可以与Spring整合而
成为适合的解决方案。
Spring还提供其他方面的整合,比如持久化方面的整合,JDBC、O/R Mapping工具、事务处理等,Spring自己也做了多方面整合的努力,因此Spring是一个全方位的框架。
最后:
架构采用多层非分布式的结构,除数据库这一层外,可以分为表现层(Presentation Layer)、业务逻辑层(Bussiness Logic Layer)和数据持久层(Persistence Layer),这3层将存在于同一个Web容器中,
作为一个整体提供J2EE服务。
定义良好的接口可以相对隔离每一层的职责,使应用更简单,并且有很好的伸缩性。数据持久层是介于
业务逻辑层和数据库层之间的桥梁,它封装了与数据库层交互的逻辑,利用ORM(对象关系映射)技术可以
完全实现面向对象的逻辑处理。
2017-05-22
展开全部
Hibernate是一个开源Java持久化项目,一个功能强大的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。
Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,最具革命
意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。
在.NET下有移植的NHibernate.
Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,最具革命
意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。
在.NET下有移植的NHibernate.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询