`

Hibernate中VO与PO

    博客分类:
  • java
阅读更多

O/R Mapping -- Object Relational Mapping(对象关系映射)的缩写。通俗点讲,就是将对象与关系数据绑定,用对象来表示关系数据。如图:



 

VO -- Value Object 值对象。
PO -- Persisent Object 持久对象。


它们的基本形式和写法如下:

public class User {
    private String id;
    private String name;

    public void setId(String argId) {
        this.id = argId;
    }

    public String getId() {
        return this.id;
    }

    public void setName(String argName) {
        this.name = argName;
    }

    public String getName() {
        return this.Name;
    }
}
虽然它们的形式与写法基本相同,但意义却大不相同。
1.VO是用new关键字创建,由GC回收的。
   PO是向数据库中添加新数据时创建,删除数据库中数据时删除的。并且它只能存活在一个数据库连接中,当连接断开时,将被销毁。
2.VO是值对象,精确点讲它是业务对象,是存活在业务层的,是业务逻辑使用的,它存活的目的就是为数据提供一个生存的地方。
   PO是有状态的,每个属性代表其当前的状态。它是物理数据的对象表示。使用它,可以使我们的程序与物理数据解耦,并且可以简化对象数据与物理数据之间的转换。
3.VO的属性是根据当前业务的不同而不同的,也就是说,它的每一个属性都一一对应当前业务逻辑所需要的数据的名称。
   PO的属性是跟数据库表的字段一一对应的。

  • 大小: 24.4 KB
2
3
分享到:
评论

相关推荐

    JAVA中的POJO、VO、PO、DO、DTO都是什么?有什么区别?

    POJOs被广泛用于表示业务实体,可以作为ORM(对象关系映射)框架如Hibernate、MyBatis中的数据模型。 2. PO(Persistent Object):持久化对象,正如其名,是用来表示数据库中表的行的Java对象。当数据库表的一行被...

    po与vo区别.doc

    4. **映射文件**:在使用ORM(Object-Relational Mapping)框架时,PO对象与数据库表的映射信息通常会写在XML配置文件或注解中。例如,在Hibernate中,可以使用`@Entity`注解来标记一个类为数据库实体,并用`@Id`...

    bo,vo,po的区别

    在IT行业中,尤其是在Java开发领域,我们经常遇到“VO”、“BO”和“PO”这样的术语,它们分别代表了Value Object、Business Object和Persistent Object。理解这三个概念对于编写清晰、可维护的代码至关重要。 首先...

    java术语(PO/POJO/VO/BO/DAO/DTO)

    在ORM(Object-Relational Mapping)框架如Hibernate中,PO常被用来作为与数据库交互的对象。 2. POJO(Plain Old Java Object,普通旧式Java对象) POJO是一个普通的Java类,没有特定的约束或框架依赖。它被广泛...

    Java的几种对象(PO-VO-DAO-BO-POJO)解释

    持久对象(Persistent Object,简称PO),主要用于与数据库中的表进行映射。一个简单的PO对象可以代表数据库表中的一条记录,而多个记录则可以通过PO的集合来表示。需要注意的是,PO对象本身不应该包含任何数据库...

    自身关联的添加、检索及PO到VO得封装、转换

    在IT行业中,自身关联是一种常见的数据库设计技巧,用于表示一个实体可以与其...在实际开发中,这种设计允许构建复杂的数据结构,如树形菜单或权限系统,同时PO到VO的转换是数据层和业务层交互中常见的数据处理方式。

    java(PO,VO,BO,DAO,POJO)Explained Collection

    Java开发中,PO(Persistant Object)、VO(Value Object)、BO(Business Object)、DAO(Data Access Object)和POJO(Plain Old Java Object)是常见的五个概念,它们在软件设计和开发中扮演着不同的角色。...

    J2EE架构数据表示:Struts+Hibernate

    在Hibernate中,有时 Persistent Object(PO)可以作为VO使用,尤其是在PO具有足够灵活性的情况下,如支持动态生成和独立于Session的状态管理。 持久层的数据表示是PO,它直接映射到数据库表,当数据库结构发生变化...

    hibernate 资料hibernate 资料hibernate 资料

    - **PO (Persistence Object)**:持久层的对象,用于表示与数据库表相对应的Java对象。 - **VO (Value Object)**:值对象,主要用于不同层之间传递数据。 #### Hibernate的基本使用流程 - **环境配置:** - ...

    hibernate配置要点详谈

    - 经过Hibernate容量处理后的VO变成了PO,该VO引用将被容器保存并在`session`关闭时`flush`。 - VO与PO之间的相互转换可以使用`BeanUtils.copyProperties()`方法实现。 #### 十、延迟加载与非延迟加载 - **延迟...

    Hibernate开发指南___夏昕

    “Hibernate高级特性”章节则进一步探讨了XDoclet与Hibernate映射、数据检索(包括CriteriaQuery和HQL)、数据关联(如一对一、一对多、多对多关系处理)、数据访问(PO和VO的使用)、事务管理、锁机制、分页、缓存...

    深入浅出Hibernate完整版

    文档还详细解释了如何处理各种类型的数据关联,包括一对一、一对多和多对多关系,以及如何有效地管理PO(Persistent Object)和VO(Value Object)。此外,还讨论了unsaved-value、Inverse和Cascade等概念,以及延迟...

    Hibernate开发指南.pdf

    - **PO (Persistent Object)**: 持久化对象,用于表示数据库中的行。 - **VO (Value Object)**: 值对象,用于封装业务逻辑中的数据。 #### 十一、事务管理 - **基于JDBC的事务管理**: 直接使用JDBC API进行事务控制...

    《深入浅出Hibernate》读书笔记

    Transient和Detached状态的对象统称为VO(Value Object),不被Hibernate管理,而Persistent对象被称为PO(PersistentObject),由Hibernate的实体管理容器管理,其变更会在事务提交时同步到数据库。 其次,实体...

    结合struts和hibernate谈J2EE架构的数据表示.doc

    Hibernate作为ORM(Object-Relational Mapping)工具,允许动态生成PO,并且支持PO的状态管理,使得PO在一定程度上可以替代VO。然而,这并不意味着PO应该跨越边界进入Web层。即使Hibernate提供了这样的便利,仍然...

    Hibernate使用技巧汇总

    以上内容总结了Hibernate使用过程中的一些重要技巧和注意事项,包括配置文件的选择与使用、实体关系管理、延迟加载策略以及与Spring框架的集成等关键知识点。通过掌握这些技巧,开发者可以更高效地利用Hibernate框架...

Global site tag (gtag.js) - Google Analytics