一,session 缓存(不跨session,就是只能在以个session中)一级缓存
1.session.get(User.class, 1);
1.不支持lazy
,
2.如果没有对象返回null
2.session.load(User.class,2);
1.支持lazy
(先返回一个cglib产生的代理对象)
2.如果没有对象返回异常(org.hibernate.ObjectNotFoundException
)
二,session删除
User user = new User();
user.setId(13);
session.delete(user);//hibernate是不建议删除一个脱管状态的对象的
三,对象的状态
1.transient
(瞬时状态
)
*
在数据库中没有与之匹配的数据
*
没有纳入
session
的管理
2.
persistent
(持久化状态
)
*
persistent
状态的对象在数据库中有与之匹配的数据
*
纳入了
session
的管理
*
在清理缓存(脏数据检查)的时候
,
会和数据库同步
* 不可以有相同id的持久化状态对象
3.detached
(脱管状态
)
*
在数据库中有与之匹配的数据
*
没有纳入
session
的管理
三,session中update和merge的区别
1.merge不改变对象状态(不会从脱管状态
变为持久化状态
)
2.update改变了对象状态(会从脱管状态
变为持久化状态
)
该方法存在的问题:持久化状态不能有2个id相同的对象
四,hibernate hbm2ddl(org.hibernate.tool.hbm2ddl
)
SchemaExport
create(是否在控制台打印语句,是否往数据库中执行ddl)
五,主键生成策略
1.自动增长
native自动选择identity,sequence
identity <-----> mysql
sequence <-----> oracle
2.自定义
assigned
uuid ----------- 32位的16进制的数字的字符串
3.多表间(可以使用另外表单主键来作为我的主键
)
foreign
六,hibernate中关系
单向
1 - 1(包括:唯一外键
(重点),主键
)
1 - N
N - 1
N - N
双向
1 - 1 双向只是改变了对象模型,表的结构不改变
1 - N
N - N
1,级联(cascade
) ----你干什么我就干什么(只对增加,删除,修改
有关系)
1.1 为什么使用
?
但有对象有关系时,持久化主对象,如果次对象没有持久化,那么持久化主对象时就报错
1.2 取值(
例如,cascade="persist,merge,evict"
)
persist
merge
delete
save-update
evict
replicate
lock
refresh
delete-orphan
all
-------- 1-1 中常用
none
-------- 默认情况下
- 大小: 16.8 KB
分享到:
相关推荐
### Hibernate基础知识详解 #### 一、持久层概述 **1. 持久层的位置** 持久层位于应用程序架构中业务逻辑层与数据访问层之间,它的主要职责是处理应用程序的数据持久化需求,即将数据从内存中保存到某种持久化...
**Hibernate基础知识积累** Hibernate是一个强大的Java持久化框架,它简化了数据库操作,使得开发者能够更加专注于业务逻辑,而不是底层的数据存取细节。本篇将深入探讨Hibernate的核心概念、配置、对象关系映射...
本示例代码旨在帮助初学者理解和掌握Hibernate的基础知识。 1. **Hibernate概述** Hibernate是Java开发中的一个开源框架,它提供了对象-关系映射(ORM)功能,使得在Java应用中处理数据库变得更为简单。通过...
### Hibernate基础知识点详解 #### 一、什么是对象关系映射(ORM)以及为什么使用ORM? 在企业级应用开发中,持久层(persistence layer)占据了非常重要的地位。它主要负责处理与数据库之间的交互,包括数据的...
SSH基础知识之Hibernate,hibernate,spring,struts,ssh
下面将详细介绍Hibernate的基础知识及其核心组件。 1. **对象关系映射(ORM)**: Hibernate 是一种 ORM 解决方案,它通过映射 Java 类到数据库表,实现了程序对象与数据库记录之间的对应。这使得开发者无需编写...
**Hibernate基础知识** 1. **什么是Hibernate**:Hibernate是一个开源的Java ORM框架,它简化了Java应用与关系数据库之间的交互。通过提供一套API,Hibernate可以将Java对象自动持久化到关系数据库中,反之亦然,...
### Hibernate基础知识点详解 #### 一、Hibernate简介与优势 **Hibernate** 是一款开源的对象关系映射(ORM)框架,它允许开发者以面向对象的方式来处理数据库操作,从而简化了Java应用与关系型数据库之间的交互。...
**Hibernate基础知识点** 1. **数据访问层**:在三层架构中,数据访问层主要负责数据的增删改查操作,即B选项所指的,它处理与数据库交互的细节,将业务逻辑与数据存储分离。 2. **Hibernate概述**:Hibernate是一...
**Hibernate基础** Hibernate是一款强大的Java持久化框架,它简化了数据库与Java...通过学习和实践这些Hibernate基础知识,开发者可以更好地理解和利用Hibernate的强大功能,提高开发效率,降低数据库操作的复杂性。
本PPT由传智播客制作,旨在帮助学习者掌握Hibernate的基础知识和应用。 首先,我们需要理解基于B/S(Browser/Server)的三层架构。这种架构通常分为展现层、业务逻辑层和数据持久层: 1. **展现层**:负责与用户...
【Hibernate基础教程】 ...本教程旨在提供全面的Hibernate基础知识,帮助读者理解其工作原理,从而在实际项目中灵活运用。通过学习,你将能够熟练地使用Hibernate进行数据持久化操作,提升开发效率。
这个资源包包含了“chapter07”目录下的源代码,是学习Hibernate基础知识的理想起点。让我们逐步解析这些源代码,了解Hibernate的基本使用方法。 ### Hibernate ORM 概念 Hibernate 提供了一种在Java应用中管理和...
1. **Hibernate基础知识**:首先,你会了解Hibernate的基本概念,包括其设计理念、核心组件以及如何在项目中集成Hibernate。这包括Hibernate的配置文件、实体类、持久化对象(POJOs)、映射文件等基本元素。 2. **...
一、Hibernate基础知识 1. 实体类:在Hibernate中,我们定义一个Java类来代表数据库中的一个表,这个类被称为实体类。实体类的属性对应于数据库表的列,而实体类的对象则代表表的行。 2. 注解配置:使用Java注解来...
总之,“hibernate example”涵盖了从零开始建立一个简单的Hibernate应用的全过程,包括环境配置、实体建模、持久化操作和查询,对于初学者来说,这是掌握Hibernate基础知识的重要实践。通过这样的练习,开发者能够...
**Hibernate基础知识:** 1. **对象关系映射(ORM)**:Hibernate是JPA的实现,它允许我们将Java对象与数据库表进行映射,使得我们可以直接操作对象,而无需编写SQL语句。 2. **实体类**:在Hibernate中,我们定义...