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

所属分类: 软件编程 / java 阅读数: 37
收藏 0 赞 0 分享

我们知道如果用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) 第三方缓存的实现

更多精彩内容其他人还在看

JAVA多线程和并发基础面试问答(翻译)

多线程和并发问题是Java技术面试中面试官比较喜欢问的问题之一。在这里,从面试的角度列出了大部分重要的问题,但是你仍然应该牢固的掌握Java多线程基础知识来对应日后碰到的问题
收藏 0 赞 0 分享

Java List双击事件实现方法

这篇文章主要介绍了Java List双击事件实现方法,需要的朋友可以参考下
收藏 0 赞 0 分享

Java开发者结合Node.js编程入门教程

这篇文章主要介绍了Java开发者结合Node.js编程入门教程,我将先向您展示如何使用Java EE创建一个简单的Rest服务来读取 MongoDB数据库。然后我会用node.js来实现相同的功能,需要的朋友可以参考下
收藏 0 赞 0 分享

Java数组操作的10大方法

下面是精心整理的Java数组操作的10大方法,大部分代码都来自Stack Overflow,需要的朋友可以参考下
收藏 0 赞 0 分享

Java中的StringBuilder性能测试

这篇文章主要介绍了Java中的StringBuilder性能测试,本文包含测试代码和测试结果,最后得出结论,需要的朋友可以参考下
收藏 0 赞 0 分享

Java基于高精度整型实现fibonacci数列的方法

这篇文章主要介绍了Java基于高精度整型实现fibonacci数列的方法,是比较典型的算法,需要的朋友可以参考下
收藏 0 赞 0 分享

Java、JavaScript、Oracle、MySQL中实现的MD5加密算法分享

这篇文章主要介绍了Java、JavaScript、Oracle、MySQL中实现的MD5加密算法分享,需要的朋友可以参考下
收藏 0 赞 0 分享

Java实现的连续奇数(n+2*x)是合数的算法题暴力算法

这篇文章主要介绍了Java实现的连续奇数(n+2*x)是合数的算法题暴力算法,本文包含运算结果和实现代码,需要的朋友可以参考下
收藏 0 赞 0 分享

java异常机制分析

这篇文章主要介绍了java异常机制,包括异常机制的捕获、抛出及常见的异常机制总结,需要的朋友可以参考下
收藏 0 赞 0 分享

Java使用JDBC连接数据库的实现方法

这篇文章主要介绍了Java使用JDBC连接数据库的实现方法,包括了详细的加载步骤以及完整实现示例,需要的朋友可以参考下
收藏 0 赞 0 分享
查看更多