【Hibernate】——核心对象

来源:互联网 发布:sqlserver 删除表约束 编辑:程序博客网 时间:2024/06/01 20:11

Hibernate开发步骤

            Hibernate是一种体现ORM思想的框架,那么它的开发步骤也就显而易见了。用一句简单的话概括就是建类、映射、导出表开发。
            在开发过程中,我们一定要非常清楚Hibernate的几大核心对象。

认识Hibernate的基本组件

            

Hibernate五大核心接口

            在Hibernate模块也就是持久化层,Hibernate的核心接口一共有5个,分别为:
这5个核心接口在任何开发中都会用到。通过这些接口,不仅可以对持久化对象进行存取,还能够进行实物控制。

Session接口

            Session接口负责执行被持久化对象的CRUD操作(CRUD的任务是完成与数据库的交流,包含了很多常见的 SQL语句。)。但需要注意的是Session对象是非线程安全的。Session也称为持久化管理器,因为它是与持久化有关的操作接口。Session通过SessionFactory打开,在所有的工作完成后,需要关闭。
            调用代码:Session session= sessionFactory.openSession();

SessionFactory接口

            SessionFactroy接口负责初始化Hibernate。它充当数据存储源的代理,并负责创建 Session对象。这里用到了工厂模式。需要注意的是SessionFactory并不是轻量级的,因为一般情况下,一个项目通常只需要一个 SessionFactory就够,当需要操作多个数据库时,可以为每个数据库指定一个SessionFactory。
            调用代码:SessionFactorysessionFactory = cfg.buildSessionFactory();
            说明:SessionFactory由Configuration对象创建,所以每个Hibernate配置文件,实际上是对SessionFactory的配置。

Configuration接口

            Configuration接口负责配置并启动Hibernate,创建SessionFactory对 象。它在多个应用线程间进行共享。在Hibernate的启动的过程中,Configuration类的实例首先定位映射文档位置、读取配置,然后创建SessionFactory对 象。 它包括如下内容:
Hibernate运行的底层信息:数据库的URL、用户名、密码、JDBC驱动类,数据库Dialect,数据库连接池等。
            Hibernate映射文件(*.hbm.xml)。
Hibernate配置的两种方法:
            属性文件(hibernate.properties)。
            调用代码:Configurationcfg = new Configuration();

            Xml文件(hibernate.cfg.xml)。
            调用代码:Configurationcfg = new Configuration().configure();

Transaction接口

            Transaction接口负责事务相关的操作。它是可选的,开发人员也可以设计编写自己的底层事务处理代码。 它将应用代码从底层的事务实现中抽象出来——这可能是一个JDBC事务,一个JTA用户事务或者甚至是一个公共对象请求代理结构(CORBA)——允许应用通过一组一致的API控制事务边界。这有助于保持Hibernate应用在不同类型的执行环境或容器中的可移植性。
            调用代码:Transaction tx =session.beginTransaction();
            使用Hibernate进行操作时必须显式的调用Transaction(默认:autoCommit=false)。

Query和Criteria接口

            Query和Criteria接口负责执行各种数据库查询。它可以使用HQL语言或SQL语句两种表达方式。
            调用代码:Query query =session.createQuery(“from User”);

            了解核心对象帮助我们更加的了解Hibernate,这些核心接口在以后的开发中都会用到,通过这些接口,不仅可以对持久化对象进行存取,还能够进行实物控制。

0 0
原创粉丝点击