`
javakid
  • 浏览: 7030 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
最近访客 更多访客>>
社区版块
存档分类
最新评论

学习hibernate第二天

阅读更多
hibernate基本映射

实体类---表
实体类中的普通属性---表字段

采用<class>标签映射成数据库表,通过<property>标签将普通属性映射成表字段
所谓普通属性指不包括自定义类、集合和数组等

注意:如果实体类和实体类中的属性和sql中的关键字重复,必须采用table或column重新命名

实体类的设计原则:
* 实现一个默认的(即无参数的)构造方法(constructor)
* 提供一个标识属性(identifier property)(可选)
* 使用非final的类 (可选)
* 为持久化字段声明访问器(accessors)   get/set方法

主键生成策略:
uuid、native和assigned


hibernate多对一关联映射

关联映射的本质:
* 将关联关系映射到数据库,所谓的关联关系是对象模型在内存中的一个或多个引用

<many-to-one>会在多的一端加入一个外键,指向一的一端,这个外键是由<many-to-one>
中的column属性定义的,如果忽略了这个属性那么默认的外键与实体的属性一致

<many-to-one>标签的定义示例:
* <many-to-one name="group" column="groupid"/>

理解级联的含义?
* 是对象的连锁操作


hibernate一对一主键关联映射(单向关联映射Person-->IdCard)

一对一主键关联映射:让两个实体对象的主键保持相同,这样可以避免多余的字段别创建

具体映射:
                     <id name="id">
<!--Person的主键来源idCard,也就是共享idCard的主键-->
<generator class="foreign">
<param name="property">idCard</param>
</generator>
</id>
<property name="name"/>
<!--one-to-one标签的含义,指示hibernate怎么加载它的关联对象,默认根据主键加载,constrained="true",表明当前主键上存在一个约束,Person的主键作为外间参考了idCard-->
<one-to-one name="idCard" constrained="true"/>


hibernate一对一主键关联映射(双向关联Person<---->IdCard)

需要在idcard映射文件中加入<one-to-one>标签指向person,指示hibernate如何加载person
默认根据主键加载



0
0
分享到:
评论

相关推荐

    hibernate学习笔记第二天的源码

    在深入探讨Hibernate学习笔记第二天的源码之前,我们先来理解一下Hibernate的核心概念。Hibernate是一个开源的对象关系映射(ORM)框架,它允许Java开发者将数据库操作转化为对象模型,大大简化了数据访问层的开发...

    hibernate培训第二天

    【hibernate培训第二天】——深入理解Hibernate框架 在软件开发中,ORM(Object-Relational Mapping)框架已经成为连接数据库与应用程序的重要桥梁,而Hibernate作为Java领域中的主流ORM框架,其强大而灵活的功能...

    hibernate第一天笔记

    本文将基于第一天学习Hibernate的笔记,详细解析其基本操作与实现。 首先,引入Hibernate所需的库文件至关重要。这包括Hibernate的核心库以及相应的数据库驱动JAR包。这些库文件提供了对ORM操作的支持,使得Java...

    Hibernate5.0-4天学习笔记.rar

    第二天,课程深入到了查询机制,包括HQL(Hibernate Query Language)和Criteria API。HQL是一种面向对象的查询语言,其语法类似于SQL,但更加面向对象,使得我们可以直接按照对象的属性进行查询。Criteria API则...

    hibernate五天学习笔记(txt)

    第二天,我们将深入探讨Hibernate的配置。这包括如何创建Hibernate的配置文件(hibernate.cfg.xml),配置数据库连接信息,以及设置实体类的映射文件(.hbm.xml)。同时,我们还会学习如何使用Annotation来代替XML...

    hibernate学习笔记第三天的源码

    在深入探讨Hibernate学习笔记第三天的源码之前,先让我们简单了解一下Hibernate。Hibernate是一个开源的对象关系映射(ORM)框架,它为Java开发者提供了一种方便的方式来管理数据库操作。通过Hibernate,开发人员...

    hibernate达内五天复习笔记.pdf

    - 第二天可能涉及了更具体的映射配置和实例,如XML配置文件或注解方式的映射。 - 第三天可能深入到对象状态的转换和生命周期管理,以及如何处理事务。 - 第四天可能讲解了HQL的使用,包括查询、更新、删除等操作...

    hibernate培训第一天

    hibernate培训第一天的课程主要围绕着Java对象持久化框架Hibernate展开,这是一款广泛应用于企业级开发中的ORM(Object-Relational Mapping)解决方案。在学习Hibernate的过程中,首先我们需要理解其核心概念,包括...

    hibernate培训第三天

    学习hibernate的第一步通常是理解其配置文件(hibernate.cfg.xml)和Session工厂的创建。配置文件中包含了数据库连接信息、方言、缓存设置等。SessionFactory则是hibernate的核心,用于创建Session实例。 在达内的...

    达内内网学习笔记 hibernate

    2. **java_hibernate_day02.pdf** - 在第二天的学习中,重点讲解了Hibernate的配置文件(hibernate.cfg.xml)和实体类的创建。这部分内容包括如何在XML中配置数据库连接信息,以及如何将Java类映射为数据库表,通过...

    hibernate培训第四天

    9. **缓存机制**:为了提高性能,Hibernate引入了缓存机制,包括第一级缓存(Session缓存)和第二级缓存(可选)。理解缓存的工作原理和配置,可以有效优化应用程序性能。 10. **事务管理**:在Java应用中,事务...

    2017黑马程序员第一天Hibernate讲义,笔记,源码

    【标题】中的“2017黑马程序员第一天Hibernate讲义,笔记,源码”表明这是一个关于Hibernate框架的初学者教程,由知名的IT培训机构黑马程序员在2017年制作,内容可能包括讲义、学习笔记以及相关的源代码示例。...

    Hibernate 学习笔记&代码.zip

    **第二天:实体类与持久化** 1. **实体类**:在 Java 中定义一个类,使用注解 @Entity 标记为实体类,表示该类将映射到数据库中的一个表。 2. **属性映射**:使用注解 @Id 定义主键,@GeneratedValue 自动生成主...

    黑马程序员_hibernate框架开发2016版讲义和笔记资料_day02

    本文将深入探讨2016年黑马程序员发布的Hibernate框架开发课程的第二天内容。Hibernate,一个强大的Java持久化框架,简化了数据库操作,为开发者提供了对象关系映射(ORM)解决方案。在Day02的学习中,我们将重点关注...

    黑马程序员hibernate框架开发2016版视频day1-day4源码笔记

    第二天的内容通常涉及到对象关系映射的深入探讨,包括一对一、一对多、多对一和多对多关系的映射实现。这部分将解释如何在实体类之间建立关联,并在映射文件中配置这些关联规则。此外,还将介绍懒加载和立即加载策略...

    传智博客Hibernate框架2016版笔记资料day03~04

    6. **缓存策略**:Hibernate提供了第一级缓存和第二级缓存,这部分内容可能会讲解如何配置和使用它们,以提高数据访问效率。 7. **高级特性**:可能还会涉及到一对一、一对多、多对一、多对多的关联映射,以及懒...

    传智博客Hibernate框架2016版笔记资料day01~02

    7. **缓存机制**:解释Hibernate的第一级缓存和第二级缓存,以及如何配置和使用它们来提高性能。 8. **事务管理**:讨论Hibernate中的事务处理,包括自动提交、手动提交和回滚,以及事务隔离级别的概念。 通过深入...

    spring培训第二天

    在“spring培训第二天”的课程中,我们深入学习了Spring框架的核心概念和关键功能。作为一款广泛应用的Java企业级开发框架,Spring以其强大的依赖注入(Dependency Injection,DI)和面向切面编程(Aspect-Oriented ...

Global site tag (gtag.js) - Google Analytics