Hibernate

作者: 蓝色Hippie | 来源:发表于2018-08-28 23:21 被阅读9次

    一、Hibernate

    对jdbc的轻量级封装,使得开发人员可以像操作对象操作数据库

    二、关于.hbm.xml

    用于映射类对应数据库中的表

    <generator class="natice"/>意味着id的自增长方式采用数据库的本地方式

    三、关于hibernate.cfg.xml

    四、hibernate基本步骤

    1.获取SessionFactory

    2.通过SessionFactory获取一个session

    3在session基础上开启一个事务

    4.通过调用session的save方法将对象保存到数据库

    5.提交事务

    6.关闭session

    7.关闭sessionfactory

    五、对象的三种状态:

    瞬时:指的是没有和hibernate发生任何关系,在数据库中也没有对应的记录,一旦JVM结束,这个对象也就消失了

    持久:指得是一个对象和hibernate发生联系,有对应的session,并且在数据库中有对应的一条记录 

    托管:指的是一个对象虽然在数据库中有对应的一条记录,但是它所对应的session已经关闭了

    六、hebernate中几种sql

    1.HQL:是hibernate专门用于查询数据的语句,有别于SQL,HQL 更接近于面向对象的思维方式。 

    2.Criteria:Criteria 完全是 面向对象的方式在进行数据查询,将不再看到有sql语句的痕迹

    3.标准sql:Hibernate依然保留了对标准SQL语句的支持,在一些场合,比如多表联合查询,并且有分组统计函数的情况下,标准SQL语句依然是效率较高的一种选择

    七、两种session

    Hibernate有两种方式获得session,分别是: openSession和getCurrentSession 

    他们的区别在于 

    1. 获取的是否是同一个session对象 

    openSession每次都会得到一个新的Session对象 

    getCurrentSession在同一个线程中,每次都是获取相同的Session对象,但是在不同的线程中获取的是不同的Session对象 

    2. 事务提交的必要性 

    openSession只有在增加,删除,修改的时候需要事务,查询时不需要的 

    getCurrentSession是所有操作都必须放在事务中进行,并且提交事务后,session就自动关闭,不能够再进行关闭 

    相关文章

      网友评论

          本文标题:Hibernate

          本文链接:https://www.haomeiwen.com/subject/guecwftx.html