Hibernate 相关知识

1.Hibrenate 是什么?

Hibernate是一个开放源代码的对象关系映 射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库

2.Hibernate 与JDBC 相比有什么优点

      <1>.Hibernate实现了对JDBC的封装,减少了代码的冗余。

      <2>.使用Hibernate 程序员就可以直接使用Hibernate的各种接口和方法,而不用去关注一些实现过程。

       <3>.Hibernate对JDBC进行封装,实现了对象的持久化。

       <4>.Hibernate支持面向对象的调用。

       <5>.Hibernate使用HQL语言,查询结果直接封装成java对象。

3.ORM

        ORM是持久化操作的一种解决方案,主要是把对象模型和关系型数据库关系模型映射起来,并且使用元素对这些关系映射进行描述。

4.Hibernate配置文件

        hibernate.cfg.xml:用于配置数据库连接,运行时所需的各种属性。批量处理,加载驱动。
        <1>.数据库连接信息。
        <2>.Hibernate相关配置。
        <3>.连接池配置。
        <4>.实体类映射文件路径。

5.Hibernate映射文件

        *.hbm.xml:将表与类,属性与主键,属性与字段相映射。

6.Hibernate操作数据库步骤

        数据库操作的几个步骤:
        <1>.configuration,获取配置,建立连接。
        <2>.创建会话SessionFactory。
<3>.打开一个session。
<4>.开始一个事务(save,saveOrUpdate,etc)。
<5>.持久化操作。
<6>.提交事务。
<7>.关闭事务。

7.Hibernate接口

<1>.Configuration 对象用来配置和引导Hibernate,一个hibernate应用使用一个configuration来制定主配置文件的位置,然后创  建会话。   Configuration cfg = new Configuration().configure("/cfg/author.cfg.xml");
<2>.SessionFactory.一个Hibernate从SessionFactory中获得会话实例。一般情况下,应用层只有一个SessionFactory,在创建时被初始化。 它是重量级的,创建时耗费资源多,代价比较大,一般把它作为静态方法。
<3>.Session。Session(会话)接口是Hibernate应用中的重要接口,它拥有操作对象持久化的唯一API,可用于管理对象,也称“管理化持久器”。
<4>.Transaction接口是对实际事务实现的一个抽象,这些实现包括JDBC和JTA事务等,Transaction接口主要包括commit()和rollback()两个方法,前者是事务的提交,后者是事务的滚回。
<5>.Query接口允许在数据库上查询,并控制查询具体执行,查询使用SQL和HQL,Query查询可用来绑定查询参数,限定查询返回结果数,并执行查询。

8.实体类对象状态

实体对象的三种状态:
<1>.瞬时状态(Transient)。刚用new创建,还没有被持久化,不在Session缓存中。
<2>.持久化状态(Persistent)。已经被持久化,且处于Session缓存中。
<3>.游离状态(Detached)。已经被持久化,但不在Session缓存中。
三种状态的转换关系:
瞬时状态 经过save()或saveOrUpdate()转换为持久化状态,持久化状态经过delete()转换为瞬时状态,持久化状态经过evict(),close()或clear()就转换为游离态,游离态经过update(),saveOrUpdate或lock()可以转换为持久化状态。
对象也可以直接通过get(),load(),find()或iterate()等直接转换为持久化状态,而不用经过new转换为瞬时状态后再转换。

9.关联映射

实体之间的关系:关联关系,通过一个对象持有另一个对象的实例。泛化关系,通过对象之间的继承方法来实现。
<1>.many to one
<2>.one to many
<3>.双向一对多。
<4>.cascade 与 inverse
cascade="save-update"意味着对某个对象执行save或update时,其关联对象会自动被持久化。可用于set标签和many-to-      one标签。
         cascade=“delete”级联删除关联集合用于set标签。
 inverse 用于one to many 节点,默认为false。

11.HQL

Hibernate支持两种主要查询方式:
<1>.HQL。是一种面向对象的查询语言,没有表与字段的概念,只有对象类与属性的概念。
<2>.Criteria查询。他用面向对象的方式将查询过程做了封装。
      使用Hibernate需要4步;
<1>.得到Session。
    <2>.编写HQL语句。
<3>.创建Query对象。
<4>.执行查询,得到结果。
HQL查询中的参数绑定。
<1>.定位参数。
定位之后,参数从零开始。
<2>.分页管理。
第10个开始分页,第10个为0,然后查10为一页。
<3>.延迟加载。
Hebernate延迟加载策略:Hebernate默认的是延迟加载策略,即按需加载,这种加载策略大大减少了资源的浪费,提高了系统的效率,如果要改变这种策略,只需在实体的映射文件中设置lazy="false"即可,但必须慎用。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值