首页 > 代码库 > 深入浅出hibernate1-持久层概述

深入浅出hibernate1-持久层概述

1.持久层概述

持久的概念理解容易,层说明了需要解耦合,

2.持久层设计

   2.1解耦合

 解耦合的演变过程
过程1.完成一个功能时在action中完成 1.连接,statement,statement设值 ,获取resultset   这个阶段持久化的代码嵌套在业务层,完全耦合
过程2.用配置文件配置数据库的连接参数,出现管理connection的获得和关闭的DBhelper, 并采用单例

持久层解耦合的目标:
        1.应用逻辑和数据逻辑分离
        2.逻辑结构和物理结构(数据库)分离
        也就是持久层应该向上不与逻辑层耦合,向下应该不与数据库耦合 目的就是底层的变动不会影响到上层的实现
        
过程3.因为现在一个业务需要频繁操作resultset preparstatement,所以一个业务会十分繁琐复杂,所以DAO模式出现
DAO模式(Data  Access Object) 包括Data Access 和 Data Domain Object   前者是封装 业务原子操作 后者是Bean的使用
DAO模式的目的:
    1.数据存储逻辑分离
    2.数据访问底层实现的分离  (前两点我觉得可以归为一点)
    3.资源管理和调度的分离
    4.数据抽象
 技术分享
 过程4.因为要屏蔽下层数据库所以不同数据库要有不同的Dao方法实现,所以需要不同dao方法的实现,采用factory模式进行管理,

2.2资源管理模式


资源的管理主要在于 connection,preparedstatement的管理,
过程5.数据库连接池+动态代理模式,管理连接 且  因为考虑到Connection的close方法可能会被在Dao中调用,所以用动态代理使原生的connection.close()方法变成释放到连接池
过程6.statement的管理池,写法与connectionPool相同,(考虑可能出现connection已经删除,他所产生的statement还在池中的情况)(偷懒不想写这个案例了)

3.持久层设计与ORM

ORM的定义使Object/Relational Mapping  即对象-关系数据映射,定义感觉上像是DAO中的domain Object,没甚么好讲的,很好懂



null


深入浅出hibernate1-持久层概述