• 技术文章 >Java >java教程

    浅析java程序中hibernate的应用总结

    高洛峰高洛峰2017-01-23 11:37:10原创474
    我们知道如果用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的缓存中

    浅析java程序中hibernate的应用总结

    三 持久化和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) 第三方缓存的实现

    更多浅析java程序中hibernate的应用总结相关文章请关注PHP中文网!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:java hibernate
    上一篇:在Java的Hibernate框架中使用SQL语句的简单介绍 下一篇:java Hibernate多对多映射详解及实例代码
    VIP课程(WEB全栈开发)

    相关文章推荐

    • 【腾讯云】年中优惠,「专享618元」优惠券!• Java数据结构之AVL树详解• 一起分析Java中异常的产生原因及处理• Java详细介绍之集合注意事项• Java基础归纳之枚举• 详细整理java枚举的使用总结
    1/1

    PHP中文网