java程序中hibernate应用总结

我们知道如果用java连接数据库,大量的SQL代码,我们就想通过一种工具来操作数据库,

我们首先想到的就是JDBC,但是想更好的针对类的属性进行操作,我们会选择Hibernate。

那么Hibernate 原理是什么呢?
hibernate可以理解为是一个中间件它负责把java程序的sql语句接收过来发送到数据库,
而数据库返回来的信息hibernate接收之后直接生成一个对象传给java。
一  首先我们先了解一下hibernate的工作7个流程
                1.读取并解析配置文件   

                2.创建SessionFactory

                3.打开Session

                4.开始一个事物

                5.持久化操作

                6.提交事务

                7.关闭Session

二 接着我们要理解实体对象的生命周期是Hibernate 的三种状态

  瞬时状态 (Transient)
  刚用 new 语句创建,还没有被持久化,且不处于 Session 的缓存中
  持久状态 (Persistent)
  已经被持久化,且加入到 Session 的缓存中
  游离状态 (Detached)
  已经被持久化,但不再处于 Session 的缓存中

                                                                    三种状态的转换图

三  持久化和ORM也是Hibernate中需要理解的一部分。

持久化:数据模型(内存)《--》存储模型(持久化设备),在Java中说持久化,通常指的是使用SQL将数据存储在关系型数据库中。

ORM是持久化的一种解决方案,主要是把对象模型和关系型数据库关系模型映射起来,并且使用元数据对这些映射进行描述。
         Hibernate中必须要搭建项目框架编写hibernate配置文件、实体映射文件
                创建项目并导入jar包
                创建Hibernate配置文件   
                            用于配置数据库连接
                            运行时所需的各种属性
                            默认文件名为“hibernate.cfg.xml”
                 测试连接
        使用Hibernate完成数据增删改操作
                1.创建实体类

                2.创建和配置映射文件

                3.主键映射

                4.主键生成策略

                5.在主配置文件中添加实体映射文件路径

                6.数据库操作

                7.单表增删改查

Hibernate 支持两种主要的查询方式

    (1)  HQL Hibernate Query Languge Hibernate 查询 语言)查询
    是一种面向对象的查询语言,其中没有表和字段的概念, 只有类、对象和属性的概念
     HQL 是应用较为广泛的方式。
    (2) Criteria 查询
又称为 对象查询 ,它用面向对象的方式将构造查询的过 程做了封装。

五 在运用Hibernate时,我们应该注意一些事情

(1) Hibernate是如何延迟加载?


    1.         Hibernate延迟加载实现:a)实体对象 b)集合(Collection)

    2.         Hibernate3提供了属性的延迟加载功能

      当Hibernate在查询数据的时候,数据并没有存在与内存中,当程序真正对数据的操作时,对象才存在与内存中,就实现了延迟加载,他节省了服务器的内存开销,从而提高了服务器的性能。


(2) 说下Hibernate的缓存机制

    1.         内部缓存存在Hibernate中又叫一级缓存,属于应用事物级缓存

    2.         二级缓存:

         a)         应用及缓存

         b)        分布式缓存

             条件:数据不会被第三方修改、数据大小在可接受范围、数据更新频率低、同一数据被系统频繁使用、

                        非关键数据

         c) 第三方缓存的实现

 

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值