精华内容
下载资源
问答
  • PO:persistant object 持久对象,可以看成是与数据库中表相映射java对象。使用Hibernate来生成PO是不错选择。 二、VO:value object值对象。通常用于业务之间的数据传递,和PO...各操作属于自己的数据...

    PO:persistant object 持久对象,可以看成是与数据库中的表相映射的java对象。使用Hibernate来生成PO是不错的选择。
         二、VO:value object值对象。通常用于业务层之间的数据传递,和PO一样也是仅仅包含数据而已。但应是抽象出的业务对象,可以和表对应,也可以不,这根据业务的需要.
    PO只能用在数据层,VO用在商业逻辑层和表示层。各层操作属于该层自己的数据对象,这样就可以降低各层之间的耦合,便于以后系统的维护和扩展。

    展开全文
  • 持久层用来固化数据,如常说的DAO层,操作数据库将数据入库业务层用来实现整体的业务逻辑 如 前台获得了数据,逻辑层去解析这些数据,效验这些数据等操作表现层很好解释 你现在看到的网页 一些界面 都属于表现层的...

    持久层用来固化数据,如常说的DAO层,操作数据库将数据入库
    业务层用来实现整体的业务逻辑 如 前台获得了数据,逻辑层去解析这些数据,效验这些数据等操作
    表现层很好解释  你现在看到的网页 一些界面 都属于表现层的东西可以用一些Html,jsp,Swing来实现
    至于mvc么对应的是 model(模型) view(视图) Controller(控制)
    在javaweb中就很好理解了再XX系统中,前台页面属于view 贯穿前台后台持久层的一套模型就是model(EJB,Spring来实现)  而连接前台后台进行逻辑操作的就是Controller(Struts来实现)

    转载于:https://www.cnblogs.com/zzzzw/p/4581424.html

    展开全文
  • EJB属于业务层主要开发分布式应用程序时会用到比较多     在当前EJB3中EJB负责持久层和业务层,JPA是EJB3中一部分,专门负责持久化数据

    EJB属于业务层

    主要开发分布式应用程序时会用到比较多

     

     

    在当前的EJB3中EJB负责持久层和业务层,JPA是EJB3中的一部分,专门负责持久化数据。

    展开全文
  • 软件项目实训及课程设计指导——如何正确地应用对象/关系映射(O/R Mapping)技术实现应用系统持久层各个DAO组件1、了解软件应用系统持久层实现中对象/关系映射技术(1)对象/关系映射(O/R Mapping)技术产生背景...

    软件项目实训及课程设计指导——如何正确地应用对象/关系映射(O/R Mapping)技术实现应用系统持久层中的各个DAO组件

    1、了解软件应用系统持久层实现中的对象/关系映射技术

    (1)对象/关系映射(O/R Mapping)技术产生的背景

    在J2EE系统平台中,面向对象OOP技术中的对象实例数据(属性或者状态)的持久化操作的方式其实是多样化的,这包括序列化/反序列化、保存为XML格式(也还应该属于序列化,目前还可以保存为JSon格式的文本文件等)和保存为关系数据库表等形式。而对于保存为关系数据库表这样的持久化形式,一般采用对象/关系映射技术实现。

    (2)什么是对象/关系映射(O/R Mapping)技术

    对象/关系映射技术的本质,其实是一种"适配器"形式的转换技术,它主要能够对数据实现如下形式的双向转换:

    1)把面向对象程序中的类转换为物理数据库系统中的数据库表

    2)将类中的各个成员属性转换到对应的物理数据库系统中的数据库表内的字段

    3)物理数据库系统中的数据库表内的某条记录转换为某个实体类的对象实例

    4)对象之间的各种关系转换为物理数据库系统中的数据库表之间的关系。

    当然,这种转换是双向的!下图所示是这种双向转换的原理图示的局部截图。

    d6e5d2f4fc0e0b8b58dc67ce94a31afb.png

    (3)为什么要提供对象/关系映射(O/R Mapping)技术

    由于关系数据库系统仍然是目前企业软件应用系统中使用最广泛的数据存储媒介,在实现"关系模型"的各种物理数据库系统(如Oracle、MS SQLServer、DB2等)中存储的是关系形式的数据和这些关系数据的静态结构,它主要包括以下内容:

    1)数据库表、表索引、视图、触发器

    2)表与表之间的关系参照完整性说明

    而面向对象分析和设计中的"对象模型"是由以下内容组成:

    1)具有状态属性和行为方法的域对象;

    2)各个域对象实体类之间的关系(关联、依赖、聚集、组合和泛化)。

    正是由于"关系模型"和"对象模型"两者在设计思想、设计原则和具体的技术实现方式、存储的内容等方面都有明显的差别,有必要将两者都转换为某一种统一的形式!从而可以采用统一的形式对这两种不同形式的数据进行访问,简化数据访问的复杂性和减少重复性地开发工作。

    而目前的软件开发过程从软件应用系统的需求描述、需求分析,系统设计和系统实现、乃至系统测试等阶段都运用面向对象的思想和设计方法、编程实现技术,很显然有必要对常规方式下的软件应用系统开发实现中的系统持久层的数据库系统操作访问的编程实现方式进行改造,期望也能够应用面向对象的方式进行。

    基于此目的,对象/关系映射(O/R Mapping)技术及相应的支持框架(包括商业和开源)、实现工具等在J2EE平台中都相继地出现了。如下示图为支持对象/关系映射(O/R Mapping)技术的Hibernate应用框架的官方页面信息的局部截图。

    9ca5533d6d43660f2c2545baf3473960.png

    因此,运用对象/关系映射(O/R Mapping)技术去开发数据库相关的应用,首先可以节省大量的工作量,特别是减少了烦琐的SQL语句的编写;其次,能够以对象为单位进行相应的数据库操作,而在JDBC API相关实现技术中是以对象的属性为单位。数据操作不仅简单,而且数据的"粒度"更大。

    2、J2EE系统平台中的对象/关系映射技术有多种实现的方法和形式

    对象/关系映射(O/R Mapping)的思想及具体的实现技术,其实在J2EE平台中早就存在和早已被应用——如J2EE EJB组件中的实体Bean组件,这包括容器管理持久性(CMP,Container-Managed Persistence)的CMP和Bean管理持久性(BMP,Bean-Managed Persistence)的BMP两种形式。

    (1)J2EE EJB组件中的实体Bean组件 ——对象/关系映射实现之一

    Sun公司(现在为Oracle公司)在J2EE EJB组件中的实体Bean组件的技术规范中提出了两种形式的实体Bean组件——容器管理持久性(CMP,Container-Managed Persistence)和 Bean管理持久性(BMP,Bean-Managed Persistence)组件。

    其中在容器管理持久性的CMP组件中也应用了对象/关系映射思想、而且也是通过标准的XML配置文件定义两者之间的映射关系的信息、并且也都倡导把对象持久化的任务从软件应用系统的业务逻辑程序代码中分离出来。

    但容器管理持久性的CMP组件技术和常规的轻量级的对象/关系映射(O/R Mapping)实现技术(如Hibernate应用框架等)相比,存在有以下几个方面的不足:

    1)CMP实体EJB组件必须严格遵守J2EE系统平台的技术规范和编程实现要求,而常规的轻量级的对象/关系映射(如Hibernate应用框架等)的实现技术则是采用POJO(Plain Old Java Objects,简单的Java对象)形式的实体组件。

    2)CMP实体EJB组件只能运行在支持J2EE EJB技术规范的EJB容器中,在开发过程中的单元测试则必须要模拟EJB容器环境或者直接在EJB容器中进行——而这是比较困难的和繁琐的实现过程;而采用POJO形式的普通实体组件,可以运行在任何一种Java运行的环境中,方便开发过程中的单元测试。

    3)CMP实体EJB组件不能在J2EE EJB容器之外运行,也就无法实施J2EE容器外的开发和单元测试;而应用POJO形式的实体组件则可以采用J2EE容器外(不必要运行在J2EE Servlet容器中)的开发实现方法。

    (2)Java Data Objects(JDO)——对象/关系映射实现之二

    Java Data Objects(JDO)是SUN公司制定的描述对象持久化语义的标准API,JDO提供了透明的对象存储实现技术,而复杂的对象存储具体实现的工作由JDO产品的各个具体提供商的程序完成。应用JDO同样也能够让软件应用系统的开发人员集中时间和精力完成软件应用系统中的业务逻辑功能实现。

    如下示图为JDO模式的工作原理示图,在JDO模式中的整个应用分为四层次的应用结构。软件应用系统的开发人员在业务逻辑层组件中不需再应用结构化查询语言(SQL)语句操作访问数据库系统中的数据,因为JDO是作为Java数据库连接JDBC API的一个补充和完善,但JDO并不意味着要取代JDBC。它们是两种互相补充的应用技术,比如JDBC允许开发人员通过直接的数据库访问控制和缓存管理,从而提供给软件应用系统的开发人员更大的灵活性。

    53e9458833bde14ecea823c7c8f22693.png

    从此工作原理示图中可以了解到JDO比JDBC(只适用于面向关系数据库系统)更通用,因为它提供了到任何数据底层的存储功能实现的标准,比如关系数据库、文件形式的序列化、XML等形式,使得基于JDO实现的应用系统具有更好的可移植性。如下为官方网站中对JDO技术标准的详细介绍的资料页面的局部截图,读者可以浏览相关的技术帮助文档和下载与JDO相关的系统库。

    969266ee03787da8fb6b8c43a946432f.png

    (3)Hibernate应用框架——对象/关系映射实现之三

    Hibernate应用框架是一个开放源代码的支持对象关系映射技术的框架,它对JDBC进行了非常轻量级的对象封装和优化,从而使得开发人员能够使用面向对象OOP的编程方法操作关系数据库系统中的数据。

    Hibernate框架不仅提供了从Java持久类到物理数据库系统的数据表的映射,也提供了数据查询和事务等机制。应用Hibernate框架能够使得软件应用系统的设计人员达到持久层设计上的解耦——业务逻辑与数据逻辑相分离,从而使得业务逻辑层开发人员不需要考虑数据库表的逻辑结构、数据访问逻辑与物理数据库系统的结构相分离(数据访问逻辑的开发者不需要再关心不同的物理数据库系统之间的差异性);也能够使得软件应用系统的开发人员提高编码效率和提高数据库访问性能(因为在Hibernate应用框架中提供了对连接池、数据缓存等技术实现的支持)。

    下图所示为Hibernate框架官方网站中下载其系统包文件的页面内容截图,读者可以在Hibernate框架官方网站中下载其系统JAR包文件,然后在软件应用系统项目中应用Hibernate框架。

    ba1e3e668a0db12d852882e16a4ac631.png

    (4)MyBatis框架——对象/关系映射实现之四

    Hibernate应用框架能够根据开发人员在映射关系定义的XML配置文件中的有关信息自动地完成对目标数据库表的对象关系映射操作,这大大地简化了软件应用系统开发人员在软件应用系统的持久层功能实现方面的技术复杂度,这是Hibernate应用框架能够流行的一个主要原因。但也导致它缺少一定的灵活性!

    因为在某些企业软件应用系统中,物理数据库系统的数据库表的结构并不是完全公开的或者是由其它合作企业设计好数据库表结构,另外也可能要求提高数据访问的性能等方面的原因。此时软件应用系统的设计和开发人员如果此时继续再应用Hibernate框架实现O/R Mapping方面的功能,则可能会出现不尽人意的效果。而面对这样的应用环境和需求,很多软件应用系统的开发人员一般又继续应用JDBC API编程实现系统中的这些功能。

    而MyBatis框架则能够很好地解决这些问题,因为它不会在运行期自动地生成SQL语句并执行数据访问操作。继续要求软件应用系统的开发人员编写具体的SQL 语句,然后通过映射配置文件,将SQL语句中所需的参数和返回的结果字段映射到指定的POJO类对象中。下图所示为MyBatis的官方网站(作者浏览的是中文版本)上对MyBatis框架的功能描述截图。读者同样可以在MyBatis框架官方网站中下载其系统JAR包文件,然后在软件应用系统项目中应用MyBatis框架,更多的技术介绍读者可以浏览MyBatis框架官方网站页面。

    b7cc4bc0ffb990d82261153bc9af4802.png

    3、应用Hibernate框架与直接应用JDBC API编程实现上的主要区别

    (1)Hibernate应用框架其实是对JDBC API技术的轻量级对象封装

    Hibernate应用框架也是一个独立的对象关系映射实现的持久层应用框架,它可以用在任何JDBC可以使用的场合。当Java系统平台中的某个软件应用系统需要从一种物理数据库系统环境移植到另一种物理数据库系统环境中时,只需要修改Hibernate应用框架中与物理数据库系统的数据库连接有关的XML配置文件,而不需要修改或者只需要修改极少量的Java源程序代码。

    在MyEclipse开发工具中提供了对Hibernate框架的数据库连接配置文件的可视化操作的支持,请见下图所示的可视化操作界面。

    3be006bde9242791e94321d117189b9a.png

    (2)Hibernate应用框架采用XML文件来配置和定义对象/关系映射

    开发人员在应用Hibernate框架实现对象和关系数据库之间的映射时,通常是编写一个XML文档来配置和定义对象/关系映射。但这个XML格式的映射文档被设计为易读的,并且可以手工修改。映射语言是以Java为中心,这意味着映射文档是按照持久化类的定义来创建的,而非数据库表的定义。

    此XML格式映射文件告诉 Hibernate 应用框架,它应该访问目标数据库系统中的哪个数据表以及应该使用数据库表中的哪些字段,另外Hibernate应用框架也需要通过此XML格式映射文件获得如何加载和保存持久化类的对象实例。如下示图为某个项目中的XML格式映射配置定义文件的示例局部截图。

    60f75a14baebb045d484db731e2160b2.png

    应用XML格式文件来配置对象/关系映射,有以下几个方面的优点:

    1)保证Hibernate应用框架既不会渗透到应用系统的上层域模型(业务处理层)中,也不会渗透到下层数据模型(数据库系统)中。

    2)软件应用系统的开发人员可以独立设计域模型,不必强迫遵守任何企业所提供的某个系统平台的规范。

    3)物理数据库系统的数据库设计人员可以独立设计数据模型,也不必强迫遵守任何的技术规范。

    4)软件应用系统中的"对象/关系"映射的技术实现不依赖于任何程序代码,如果需要修改"对象/关系"映射,只需要修改相关的XML格式的配置定义文件,不需要修改任何的程序代码,提高了软件应用系统的灵活性,并且使软件应用系统的维护更加方便。

    展开全文
  • spring属于控制层+业务层。可以代替Hibernate+StrutsHibernate持久层,主要数据持久化Struts控制层spring,hibernate,struts就是现在流行ssh开发模式。
  • 一、关于Hibernate二级缓存 Hibernate 中实现了良好Cache 机制,可以借助Hibernate 内部Cache迅速提高系统数据读取性能。Hibernate Cache机制是透明化,在上层结构实现中无需进行繁琐Cache维护细节。...
  • DAO层叫数据访问层,全称为data access object,属于一种比较底层,比较基础的操作,主要是做数据持久层的工作,主要与数据库进行交互。具体到对于某个表的增删改查,也就是说某个DAO一定是和数据库.
  • Dao层叫数据访问层(有持久层),全称data access object,属于一种比较底层,比较基础操作层,具体到对于某个表增删改查,也就是说某个Dao层一定适合数据库某一张表一一对应,其中封装了增删改查基本操作...
  • 1.持久层:DAO层(mapper层)(属于mybatis模块)DAO层:主要负责与数据库进行交互设计,用来处理数据的持久化工作。DAO层的设计首先是设计DAO的接口,也就是项目中你看到的Dao包。然后在Spring的xml配置文件中定义此...
  • 1.持久层:DAO层(mapper层)(属于mybatis模块) DAO层:主要负责与数据库进行交互设计,用来处理数据的持久化工作。 DAO层的设计首先是设计DAO的接口,也就是项目中你看到的Dao包。 然后在Spring的...
  • 1.持久层:mapper层(属于mybatis模块) mapper层:主要负责与数据库进行交互设计,用来处理数据的持久化工作。 mapper层的设计首先是设计mapper的接口,也就是项目中你看到的mapper包。 然后在Spring的xml配置文件...
  • 是一种你不主动清除它,它会一直将存储数据存储在客户端存储方式,即使你关闭了客户端(浏览器),属于本地持久层储存 sessionStorage: 用于本地存储一个会话(session)中的数据,一旦会话关闭,那么数据会消失...
  • 首先在搭建一个网站后台前,需要明确出一个合理的网页搭建的结构框架,即从DB ==>...Dao层(Data Acess Object):所谓的Dao层,主要是网页的数据持久层的工作,负责与数据库进行联络的一些任务都封装在此,包...
  • localStorage:是一种你不主动清除它,它会一直将存储数据存储在客户端存储方式,即使你关闭了客户端(浏览器),属于本地持久层储存sessionStorage:用于本地存储一个会话(session)中的数据,一旦会话关闭,那么...
  • 首先在搭建一个网站后台前,需要明确出一个合理的网页搭建的结构框架...Dao层(Data Acess Object):所谓的Dao层,主要是网页的数据持久层的工作,负责与数据库进行联络的一些任务都封装在此,包括网页数据当中的增删...
  • 持久层:DAO层(mapper层)(属于mybatis模块)DAO层:主要负责与数据库进行交互设计,用来处理数据的持久化工作。DAO层的设计首先是设计DAO的接口,也就是项目中你看到的Dao包。然后在Spring的xml配置文件中定义此接口...
  • 1.持久层:DAO层(mapper层)(属于mybatis模块)DAO层:主要负责与数据库进行交互设计,用来处理数据的持久化工作。DAO层的设计首先是设计DAO的接口,也就是项目中你看到的Dao包。然后在Spring的xml配置文件中定义此...
  • Java三架构ssh

    2018-01-31 17:51:05
    1、表现层:现在看到的网页 一些界面 都属于表现层的东西 2、业务层(service):用来实现整体的业务逻辑 如 前台获得了数据,逻辑层去解析这些数据,效验这些数据等操作 3、持久层:用来固化数据,如常说的DAO层,...

空空如也

空空如也

1 2 3 4 5 ... 13
收藏数 250
精华内容 100
关键字:

属于数据持久层的是