`
gupeng_ie
  • 浏览: 26194 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Hibernate之OID

阅读更多

一、SQL--structured query language(结构化查询语句)

*主键--PRIMARY KEY

1.主键非空,也就是说,被设定为主键的列在插入数据的时候就不能为空,如果为空SQL就会报错。

2.主键唯一,也就是说,一个表通过 主键 可以唯一确定 一条记录。

 

*主键选择原则:

1.主键一般都是挑选能够 唯一 表示一条记录的 字段 来做,比如,现在有一个“学生表”里面有“学生编号”、“学生姓名”、“学生年龄”等。

 

根据原则肯定要以“学生编号”为主键。

2.还有一个原则就是 不经常被修改 的 字段 也可以做主键。“学生编号”在对表操作的时候肯定不会被修改所以也比较符合。

 

主键没有什么随便不随便设,一个表最好有一个主键,因为这是个好习惯,而且设置主键,方便对数据进行增删改查。

 

**小结:

主键有三要素:1.唯一 2.非空 3.不可修改

一般,我们在设置主键时,都会设置其为自增。

-------------------------------------------------------------------------------------------------------------------------------------

二、在JAVA中,通过比较 对象引用--对象内存地址 是否相等,或者通过比较 对象的值 是否相等,来判断是否是同一个对象。

1. ==  ,比较 对象的内存地址值 是否相等。

2.equal() ,比较 对象值 是否相等,我们可以通过重写此方法,来达到目的。

 

-------------------------------------------------------------------------------------------------------------------------------------

三、Hibernate为了解决二者之间的不同,使用对象标识符(OID)来标识对象的唯一性。OID是关系数据库中,主键在Java对象模型中的等价物。在运行时,hibernate根据OID来维持Java对象和数据库表中的对应关系。

 

-------------------------------------------------------------------------------------------------------------------------------------

对象标识(Object Identifier)--OID

 

*什么是OID?

为了在系统中能够找到所需对象,我们需要为每一个对象分配一个唯一的表示号。在关系数据库中我们称之为关键字,而在对象术语中,则叫做对象标识(Object identifier-OID).
通常OID在内部都使用一个或多个大整数表示,而在应用程序中则提供一个完整的类为其他类提供获取、操作。

*OID的唯一性

一个 OID必须在一个类层次中保持唯一,理想上应该在所有对象上都唯一。

OID(Object ID)应当没有任何业务相关含义

一个非常关键的问题是OID绝对不应当具有任何业务含义。因为任何有业务含义的列都有改变的可能性,而计算机社团多年来从关系数据库学到的最重要的一个事实之一就是:不要给你的关键字任何意义。如果你的用户决定改变业务含义,也许他们想要增加几个数字或把数字变为字母数字,那么你需要在任何用到这个关键字的地方进行改变。一个表中的主关键字内的任何东西都有可能被其他表作为外键。就算是一个简单的改变,譬如在你的客户号码马上增加一个数字,可能会造成极大的维护上的开销。在关系数据库中,这种OID策略被称之为代理关键字。

 

 

0
5
分享到:
评论

相关推荐

    Hibernate知识点总结

    在Hibernate中,每个持久化对象都有一个唯一的OID,通常对应于数据库表的主键。 #### 三、Hibernate的配置步骤 1. **导入Hibernate的Jar包**:这是使用Hibernate的前提条件。 2. **创建Hibernate配置文件**:通常...

    hibernate权威整理文档!

    【hibernate权威整理文档!...理解和掌握Hibernate的主要组件、配置以及查询方式,是Java开发者必备的技能之一。通过深入学习和实践,开发者可以更好地利用Hibernate来构建高效、稳定的持久层解决方案。

    hibernate 重点知识原创

    OID(Object Identifier)是对象在数据库中的唯一标识,类似于关系数据库中的主键。 ORM 解决了传统编程语言与关系数据库之间数据表示的不匹配问题,通过元数据(如 .hbm.xml 文件)定义对象与数据库表之间的映射...

    Hibernate4

    ### Hibernate4:深入理解对象关系映射框架 #### 一、Hibernate概述 **Hibernate** 是一个面向 Java 领域的持久化框架,它属于 ORM(Object-Relational Mapping,对象关系映射)的一种实现方式。所谓“持久化”,...

    Hibernate 基础.ppt

    在对象术语中,每个对象都有一个唯一的对象标识符(OID),在关系数据库中对应于主键。 【ORM(对象关系映射)】是解决面向对象编程和关系数据库之间不匹配的技术。它通过映射关系数据库的记录为对象,使开发者可以...

    Hibernate的概述

    Hibernate的强大之处在于它不仅仅是一个简单的持久化框架,更是一种将对象模型与关系模型完美结合的思想体现。掌握了Hibernate之后,开发者能够在复杂的项目中更加高效地管理和操作数据库,同时也能更好地应对未来的...

    常见hibernate面试题.doc

    - **OID查询**:OID(Object Identifier)查询是根据对象标识符来查找对象。这种查询方式主要用于直接获取特定ID的对象。 - **HQL (Hibernate Query Language)**:HQL是一种面向对象的查询语言,它提供了一种灵活且...

    Hibernate常见面试题

    2. **OID检索**:OID即Object Identity,通过对象的唯一标识符进行检索。这种方式通常用于获取某个具体实例。 3. **HQL检索**:HQL(Hibernate Query Language)是一种面向对象的查询语言,类似于SQL,但语法更接近...

    Hibernate 课件及源代码

    内容涵盖安装 Hibernatetools 插件、Session 核心方法、持久化对象生命周期、对象关系映射(1-n、1-1、n-n、继承映射)、检索策略、检索方式(对象导航图、OID 检索、HQL、QBC、本地SQL)、Hibernate 一\二级缓存、...

    Hibernate 框架总结

    如果该属性为true,则Session会首先在缓存中查找,如果缓存中不存在,会返回一个代理类对象而不是真实实体对象,等到实际使用该对象时(比如获取OID以外的其他属性)才会真正查询数据库。如果最终数据库中没有符合...

    Hibernate 注解映射

    这些注解可以添加在属性上,也可以添加在 getXxx() 方法之上。 * @Entity:映射一个实体类,指定关联的表名。 * @Id:映射 OID,指定主键。 * @GeneratedValue:指定 OID 的生成策略,默认值是 GenerationType.AUTO...

    Hibernate的缓存级联查询

    组件类没有独立的OID(对象标识符),不会在数据库中单独创建表,且不能单独持久化,但能与其他持久化类关联。 Hibernate的缓存机制是提高系统性能的关键。一级缓存是基于Session的,它保存了自Session打开以来所有...

    hibernate面试题总结

    - `load`方法是基于对象标识符(OID)来获取对象,它返回的是一个代理对象,实际的对象数据会在第一次访问属性时从数据库加载,实现了延迟加载。如果对象不存在,会抛出`EntityNotFoundException`。 - `get`方法...

    Hibernate-佟刚

    ### Hibernate详解及应用 #### 一、Hibernate简介 Hibernate是一个开放源码的Java持久层框架,它通过一种称为对象关系映射(Object Relational Mapping,简称ORM)的技术,实现了Java对象与关系型数据库表之间的...

    Hibernate缓存技术研究

    ### Hibernate缓存技术研究 #### 一、引言 ...总之,Hibernate的缓存机制是提高应用程序性能的关键技术之一。通过对缓存结构的理解以及合理配置缓存策略,可以有效地提高数据访问效率,减少数据库的负担。

    Hibernate面试题-详尽解析

    ### Hibernate面试题详解 #### 一、主键生成方式中的`native`与`identity`区别 **1.1 native方式** - **定义**: `native`是一种动态选择标识符生成策略的方式,它根据所使用的底层数据库系统自动选择最适合的生成...

    hibernate的配置使用和各种查询

    ### Hibernate的配置与使用详解 #### 一、Hibernate概述 Hibernate是一种开源的对象关系映射(Object-Relational Mapping,简称ORM)框架,它为Java应用提供了利用SQL数据的持久化解决方案。通过ORM技术,开发人员...

Global site tag (gtag.js) - Google Analytics