一、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就自动关闭,不能够再进行关闭
网友评论