Tag/
共1个网摘 [
1 ] |
huangqinghui收录,使用标签:hibernate个人看法,时间:2008-3-21 17:03:32 | 相关网摘,我也收藏
1。持久层概述:
对象的持久化: 对象创建之后就暂时保存在了内存之中,但是内存不能永久的保存对象,因此要将对象持久化到数据库中,才能得以保存。
持久层的实现: JDBC、Hibernate、…
2. ORM框架概述:
什么是ORM框架: ORM(Object/Relation Mapping )是一种框架,作为应用程序和数据库的桥梁,完成面向对象的程序设计语言与关系数据库的映射.
为什么需要ORM: 软件开发语言已是面向对象,而数据库系统仍停留在关第型数据库阶段,而ORM 框架是面向对象程序设计语言与关系数据库发展不同步时的中间解决方案
常见的ORM框架: Hibernate、iBATIS …
3. Hibernate概述:
什么是Hibernate: a). Hibernate是目前最流行的ORM框架,采用"对象/关系映射技术"将对象映射到关系数据库中。此外,Hibernate还提供了数据查询的方法。
b). Hibernate对JDBC API进行了封装,提供了面向对象的数据访问API,把数据访问的细节封装起来,它位于软件架构分层的持久化层。
c). Hibernate作为应用程序访问数据库的中间件,具有透明性的特点,作为使用者无须关心它是如何实现的,只需知道如何访问它的接口。
Hibernate的使用: a). 创建Hibernate配置文件;
b). 创建持久化类;
c). 创建对象-关系映射文件;
d). 通过Hibernate API编写访问数据库的代码;
4. Hibernate核心接口:
Configuration接口: 用于配置Hibernate(加载配置文件),创建SessionFactory对象。
SessionFactory接口:用于初始化Hibernate、创建Session对象,重量级的,线程安全的。
Session接口: 负责持久化操作 (被称为持久化管理器),轻量级的(实例的创建和消毁不消耗太多的资源),非线程安全的。
Transaction接口: 用于管理事务。
Query、Criteria接口: 执行数据库的查询,Session的find()也有查询功能,但只能作简单的查询。
5. Hibernate配置文件://配置连接数据库的相关信息
属性文件的形式配置: hibernate.propertis
//hibernate.dialect指定数据库方言
//hibernate.show_sql=true,表示程序运行时是否在控制台输出SQL语句
xml的形式配置: hibernate.cfg.xml:
//一个不恰当的比喻: SessionFactory Connection pool
Session Connection
6. Hibernate持久化类:
什么是持久化类: 其对象要被持久化到数据库中的、满足JavaBean规范的java类。
持久化类的访问:
a). 应用程序对它的访问: 调用public类型的getXxx()获取数据、setXxx()保存数据。
b). Hibernate对它的访问: Hibernate在的Session在执行save()、update()等需要获取数据的方法时,则调用持久化类的getXxx();
当Session执行find()、get()、load()等需要保存数据的方法时,则调用setXxx().
//也可以在映射文件中的的access=field|property属性指定Hibernate访问持久化类的字段而不访问getXxx()setXxx():
//Hibernate访问持久化类时不受访问权限的限制。
7. Hibernate映射文件:
映射文件结构: hibernate.hbm.xml:
映射文件说明:
元素对应一个持久化类:
name 指定完全限定的类名,如果不使用全限定的类名,则必须在元素中用package属性指定持久化类所在的包名。
table 指定与类对应的表名,若无则表名与类名相同。
//如果有多个持久化类要映射,可在同一个映射文件中定义多个class元素。也可为每个持久化类定义一个映射文件,这有利于维护和管理。
元素用于映射持久化类的主键:
name属性指定持久化类的OID.
column属性来强制指定列名,否则列名默认与属性名相同。
type属性指定Hibernate映射类型(是java类型与SQL类型的桥梁).
它的子元素指定标识符(主键)生成器。
用于映射持久化类的属性:
name属性指定持久化类的属性名
column属性来强制指定列名,否则列名默认与属性名相同。
type属性指定Hibernate映射类型(是java类型与SQL类型的桥梁).
not_null属性用于指定属性不允许为null.
//property 元素可以有column子元素,用来替代column属性,但它的功能比column属性大。
控制insert、update的属性:
8. Hibernate与JDBC的对比:
9. Hibernate访问数据库的代码:
//通常我们在new Configuration().configuration(url);中加上配置文件的路径,若没有则表示默认路径。
10. Hibernate命名约定: 表名为持久化类名在写加‘S’,字段名为属性名大写(可以通过编写相应的类完成这一过程)。
http://wz.csdn.net/tool
共1个网摘 [
1 ]