*.Hibernate的好处
是一种持久化技术,封装了数据访问细节,体现了面向对象的思想。
--->什么是细节?
组织sql语句,遍历结果集。
*.关联:类之间的引用关系,以属性声明的方式体现
或者一个类中的属性是另一个类的集合。
通过主外键约束来实现。
依赖:类之间的访问关系,一个类的方法实例化另外一个类或
访问另外一个类的属性
聚集:强调生命周期(逻辑上的约束),如人和手的关系,
整体与部分的关系。部分类的对象不能单独存在,他的
生命周期依赖于整体类的对象的生命周期,整体消失时,
部分也随之消失。
一般化:又叫泛化,类之间继承关系。
*.持久化层
|--传统的典型软件3层架构
|
表示层 ---> 业务层 --|---> 数据库层
|
对象(实体)模型 | 关系模型
O R
|--现在将业务层分为两个部分,将持久层分离出来。持久化层封装了数据访问的细节,
为业务逻辑层提供了面向对象的API
|
表示层 ---> 业务层 ---> 持久层 --|---> 数据库层
持久化类) (Hibernate) |
对象(实体)模型 | 关系模型
O R
|--持久化类(JavaBean)不再持久化层,而是在业务逻辑层
*.元数据(metadata)
描述数据的数据
*.缓存
Session ---- 一级缓存,存储当前工作单元加载的持久化对象 Session又叫做持久化管理器
SQL语句,映射元数据 ---- 缓存
缓存插件 ---- 二级缓存
*.Hibernate API
|--Hibernate对JDBC做了轻量级的封装。所谓轻量级是
指Hibernate并没有完全封装JDBC,java应用既可以
通过HibernateAPI来访问数据库,还可直接通过JDBC
API访问数据库。
*.OID
|--Hibernate使用OID来建立内存中的对象和数据库中记录的对应关
系。对象的OID和数据库的表的主键对应。为保证OID的唯一性,应
该让Hibernate来为OID赋值。其实就是和数据库对应的主键的那个属性,
可以理解为OID就是JavaBean中通常定义的id。
*.动态插入与动态更新
*.Inverse
|--用来忽略对关联关系的维护权,转而交给具有关联关系的另外一方
*.Hibernate API简介
|--Configuration
配置hibernate,根启动hibernate,创建
sessionFactory对象。
|--SessionFactory
初始化hibernate,充当数据源代理,创建
session对象。线程安全的,可被多个线程共享。重量级的,
需要一个很大的缓存,用于存放于定义的sql语句和映射元数
据等。用户还可为它配置一个缓存插件,称为二级缓存。
|--Session
使用最广泛,也被称为持久化管理器,它提供和持久
化相关的操作。增、删、改、查等。不是线程安全的,避免多
个线程共享。轻量级的,创建和销毁不需要消耗太多资源。
Session中有一个缓存,称为一级缓存。存放当前工作单元加
载的对象。
|--Transaction
hibernate数据库事务接口,它对底层的事务接口作了封装.
|--Query和Criteria接口:
都是查询接口,query实例
包装了HQL查询语句,hql是面向对象的,他引用类
名及类的属性名,而不是表名和字段名。Criteria接
口完全封装了基于字符串形式的查询语句,比
query接口更面向对象,他擅长执行动态查询。
http://blog.sina.com.cn/s/blog_613324c50100g6ih.html