Hibernate

一、Hibernate

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

二、关于.hbm.xml

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

意味着id的自增长方式采用数据库的本地方式

三、关于hibernate.cfg.xml


Hibernate_第1张图片

四、hibernate基本步骤

1.获取SessionFactory

2.通过SessionFactory获取一个session

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

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

5.提交事务

6.关闭session

7.关闭sessionfactory


Hibernate_第2张图片

五、对象的三种状态:

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

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

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


Hibernate_第3张图片

六、hebernate中几种sql

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


Hibernate_第4张图片

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


Hibernate_第5张图片

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


Hibernate_第6张图片

七、两种session

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

他们的区别在于 

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

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

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

2. 事务提交的必要性 

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

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

你可能感兴趣的:(Hibernate)