Hibernate总结
一、Hibernate是一个ORM框架 (对象关系映射的框架)
主要解决的问题是对象-关系的映射,一般情况下 一个持久化类和一个表对应,类的每一个实例对应表中的一条记录。(持久化:内存中的对象转存到外部持久设备上)
二、Hibernate常用的5个核心接口理解
1、Configuration类,读取hibernate.cfg.xml 文件。
Hibernate.cfg.xml配置文件里面描述了链接数据库的信息,包括hibernate里面的配置信息,比如方言 缓存机制 所有的映射文件,都必须在Hibernate.cfg.xml里面注册,不然无法找到映射文件,不能完成映射
2、SessionFactory接口
一个SessionFactory实例对应一个数据存储源。
1)SessionFactory它是线程安全的,这意味着它的一个实例能够被应用的多个线程共享。
2)SessionFactory它是重量级的,这意味着不能随意创建或者销毁,一个数据库只对应一个SessionFactory。(注:一般一个数据源的话只要一个SessionFactory实例)如果应用只是访问一个数据库,只需创建一个SessionFactory实例,并且在应用初始化的时候创建该实例。如果应用有同时访问多个数据库,则需为每个数据库创建一个单独的SessionFactory。
3、Session接口,Session的创建依赖于SessionFactory。
Session接口是Hibernate应用最广泛的接口。它提供了和持久化相关的操作,如添加,删除,更改,加载和查询对象。
1)它是线程不安全的,因此在设计软件架构时,应尽量避免多个线程共享一个Session实例。
2)Session实例是轻量级的,这意味着在程序可以经常创建和销毁Session对象。
4、Query和Criteria接口
Query是hql查询,Criteria完全面向对象的查询,这两个是Hibernate的查询接口,用于向数据库查询对象,以及控制执行查询的过程。 Query实例包装了一个HQL查询语句。Criteria接口完全封装了基于字符串形式的(QBC,QBE)查询语句,比Query接口更面向对象。Criteria更擅长于执行动态查询。
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!