Hibernate<一> 介绍及基础应用

一、Hibernate入门基本概念

1、对象持久化:

   对象是只能存在内存中,而内存不能永久的保存数据。如果要永久保存对象的状态,需要进行对象的持久化,即把对象存储到专门的数据库中。关系数据库中存放的关系数据,是非面向对象的。对象和关系数据是业务实体的两种表现形式,业务实体在内存中表现为对象,在关系数据库中表现为关系数据。把对象持久化关系数据库中,需要进行对象-关系映射ORM。

2、jdbc的优缺点:jdbc运行效率高,但是java程序代码嵌入大量的sql语句,项目难以维护。

3、中间件和普通的应用程序代码的区别在于,中间件具有很高的可重用性,对于各种应用领域都适合。后者和特定的业务功能相关,不同的业务领域的应用程序代码显然不一样。

4、Hibernate  API简介:

      提供访问数据库的操作的接口:Session、Transaction、和Query接口。

      用于配置Hibernate的接口:Configuration

      ①、Configuration接口:配置Hibernate,根启动Hibernate,创建SessionFactory对象,Hibernate应用通过Configuration实例来制定对象-关系映射文件的位置或者动态配置Hibernate属性,然后创建SessionFactory实例。

      ②、SessionFactory接口:初始化Hibernate,充当数据存储源的代理,创建Session对象。SessionFactory是线程安全的,它的同一个实例可以被应用的多个线程访问。同时它也是重量级的,不能随意创建销毁它的实例,如果应用只访问一个数据库,只需要创建一个SessionFactory实例,在应用初始化的时候创建该实例,如果应用同时访问多个数据库,则需要为每个数据库创建一个单独的SessionFactory实例。

            之所以称SessionFactory是重量级的,因为它需要一个很大的缓存,用来存放预定义的sql语句以及映射元数据等。用户还可以为sessionFactory配置一个缓存插件,这个缓存插件称为Hibernate的二级缓存。Hibernate在初始化就会根据映射信息预定义一些sql    insert、delete、update语句。这些sql语句存放在sessionFactory的缓存中。

      ③、session接口:负责保存、更新、删除、加载和查询对象。Session不是线程安全的,要避免多个线程同时访问同一个session实例。Session是轻量级的,它的创建和销毁不需要消耗太多的资源。在程序中可以经常创建或销毁session对象。session有一个缓存,被称为Hibernate的一级缓存,它存放被当前工作单元加载的对象。每个session实例都有自己的缓存,这个session实例的缓存只能被当前工作单元访问。

      ④、Transaction:事务管理。

      ⑤、Query和Criteria接口:是Hibernate的查询接口,用于向数据库查询对象,以及控制执行查询的过程。Query实例包装了一个HQL查询语句,HQL查询语句是面向对象的,它引用类名以及类的属性名,而不是表名及表的字段名。

5、使用Hibernate步骤:

    ①、创建持久化类:Hibernate要求持久化类必须提供一个不带参数的默认构造方法。

    ②、创建对象-关系映射文件。例如创建Person.hm.xml文件,这个文件应该和Person.class放在同一个目录下。

        

<hibernate-mapping>
    <class />
</hibernate-mapping>

            在class元素中,<id>子元素必须存在而且只能存在一次。<property>元素可以不存在    ,或者存在一次或多次。而且必须先定义<id>元素,再定义<property>元素。

   ③、创建Hibernate配置文件:Hibernate从其配置文件中读取和数据库连接有关的信息。这个配置文件应该位于classpath中。


转载于:https://my.oschina.net/wangning0535/blog/487924

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值