3.hibernate核心接口

来源:互联网 发布:算法工程师做什么的 编辑:程序博客网 时间:2024/06/06 13:00

一、Configuration类(一个应用创建一个)


如果有要加载多个hbm.xml,可使用config.addResource("x11.hbm.xml")

或者config.addClass(org.hibernate.x11.class)

config.setProperty()动态配置属性值

二、SessionFactory接口

三、Session(会话)接口

Session接口是Hibernate中的核心接口,它不是Java Web应用中HttpSession接口。Hibernate操作数据库之前必须先获取一个Session对象,相当于JDBC在操作数据库之前必须获取一个Connection对象一样。


//也可以使用Session session=session.openSession()方法

获取Session对象后,Hibernate内部并不会获取操作数据库的java.sql.Connection对象,而是等待Session对象真正需要对数据库进行CRUD等操作时,才会从数据库连接池中获取java.sql.Connection对象。而关闭Session对象时,则是将java.sql.Connection对象返回到连接池中,而不是直接关闭java.sql.Connection对象。



对象的三种状态:瞬时态、持久态、游离态


save() 、update()、saveOrUpdate()、delete()、get()、load()、

contains()、evict()、clear()、createQuery()、createCriteria()、

createSQLQuery()、createFilter()



四、Transaction接口

ACID(原子性、一致性、隔离性、持久性)

不完全隔离事务出现的问题:

更新丢失(两事务试图更新一行数据)、

脏数据(第二个应用使用第一个修改过的数据,但此数据处于未提交状态)、

不可重复度(一个事务两次读取,结果不一样)、

幻读(一个事务两次查询结果增加)

隔离级别:

1读操作未提交、2读操作已提交、4可重读、8可串行化。



五、Query接口(面向对象查询)

hibernate检索方式:HQL、QBC、SQL

list()、iterator()、uniqueQuery()

executeUpdate()更新或删除、setFirstResult()、setMaxResult()与前一结合使用实现分页。


HQL http://blog.chinaunix.net/article.php?articleId=47942&blogId=1655


六、Criteria接口(QBC、面向对象)

使用add方法增加查询条件(使用类Criteria、Criterion、Restriction)
add()、addOrder()、list()、scroll()、setFetchModel()
setFetchSize()、setMaxResult()、setFirstResult()、uniqueResult()

setProjection()




0 0
原创粉丝点击