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

hibernate 基础知识

阅读更多

一,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基础知识

    ### Hibernate基础知识详解 #### 一、持久层概述 **1. 持久层的位置** 持久层位于应用程序架构中业务逻辑层与数据访问层之间,它的主要职责是处理应用程序的数据持久化需求,即将数据从内存中保存到某种持久化...

    HIbernate基础知识积累

    **Hibernate基础知识积累** Hibernate是一个强大的Java持久化框架,它简化了数据库操作,使得开发者能够更加专注于业务逻辑,而不是底层的数据存取细节。本篇将深入探讨Hibernate的核心概念、配置、对象关系映射...

    Hibernate基础知识演示代码

    本示例代码旨在帮助初学者理解和掌握Hibernate的基础知识。 1. **Hibernate概述** Hibernate是Java开发中的一个开源框架,它提供了对象-关系映射(ORM)功能,使得在Java应用中处理数据库变得更为简单。通过...

    hibernate基础 入门/ hibernate basic

    ### Hibernate基础知识点详解 #### 一、什么是对象关系映射(ORM)以及为什么使用ORM? 在企业级应用开发中,持久层(persistence layer)占据了非常重要的地位。它主要负责处理与数据库之间的交互,包括数据的...

    SSH基础知识之Hibernate

    SSH基础知识之Hibernate,hibernate,spring,struts,ssh

    hibernate基础jar包

    下面将详细介绍Hibernate的基础知识及其核心组件。 1. **对象关系映射(ORM)**: Hibernate 是一种 ORM 解决方案,它通过映射 Java 类到数据库表,实现了程序对象与数据库记录之间的对应。这使得开发者无需编写...

    hibernate 基础jar包和mysql程序驱动

    **Hibernate基础知识** 1. **什么是Hibernate**:Hibernate是一个开源的Java ORM框架,它简化了Java应用与关系数据库之间的交互。通过提供一套API,Hibernate可以将Java对象自动持久化到关系数据库中,反之亦然,...

    hibernate基础

    ### Hibernate基础知识点详解 #### 一、Hibernate简介与优势 **Hibernate** 是一款开源的对象关系映射(ORM)框架,它允许开发者以面向对象的方式来处理数据库操作,从而简化了Java应用与关系型数据库之间的交互。...

    Hibernate基础考试题借鉴.pdf

    **Hibernate基础知识点** 1. **数据访问层**:在三层架构中,数据访问层主要负责数据的增删改查操作,即B选项所指的,它处理与数据库交互的细节,将业务逻辑与数据存储分离。 2. **Hibernate概述**:Hibernate是一...

    Hibernate基础

    **Hibernate基础** Hibernate是一款强大的Java持久化框架,它简化了数据库与Java...通过学习和实践这些Hibernate基础知识,开发者可以更好地理解和利用Hibernate的强大功能,提高开发效率,降低数据库操作的复杂性。

    Hibernate 基础.ppt

    本PPT由传智播客制作,旨在帮助学习者掌握Hibernate的基础知识和应用。 首先,我们需要理解基于B/S(Browser/Server)的三层架构。这种架构通常分为展现层、业务逻辑层和数据持久层: 1. **展现层**:负责与用户...

    Hibernate基础教程

    【Hibernate基础教程】 ...本教程旨在提供全面的Hibernate基础知识,帮助读者理解其工作原理,从而在实际项目中灵活运用。通过学习,你将能够熟练地使用Hibernate进行数据持久化操作,提升开发效率。

    hibernate入门源代码

    这个资源包包含了“chapter07”目录下的源代码,是学习Hibernate基础知识的理想起点。让我们逐步解析这些源代码,了解Hibernate的基本使用方法。 ### Hibernate ORM 概念 Hibernate 提供了一种在Java应用中管理和...

    hibernate程序高手秘笈-英文版

    1. **Hibernate基础知识**:首先,你会了解Hibernate的基本概念,包括其设计理念、核心组件以及如何在项目中集成Hibernate。这包括Hibernate的配置文件、实体类、持久化对象(POJOs)、映射文件等基本元素。 2. **...

    hibernate以及连接池

    一、Hibernate基础知识 1. 实体类:在Hibernate中,我们定义一个Java类来代表数据库中的一个表,这个类被称为实体类。实体类的属性对应于数据库表的列,而实体类的对象则代表表的行。 2. 注解配置:使用Java注解来...

    hibernate example

    总之,“hibernate example”涵盖了从零开始建立一个简单的Hibernate应用的全过程,包括环境配置、实体建模、持久化操作和查询,对于初学者来说,这是掌握Hibernate基础知识的重要实践。通过这样的练习,开发者能够...

    demo.zip springboot + hibernate 的第一个项目

    **Hibernate基础知识:** 1. **对象关系映射(ORM)**:Hibernate是JPA的实现,它允许我们将Java对象与数据库表进行映射,使得我们可以直接操作对象,而无需编写SQL语句。 2. **实体类**:在Hibernate中,我们定义...

Global site tag (gtag.js) - Google Analytics