深入浅出hibernate1-持久层概述

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了深入浅出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,没甚么好讲的,很好懂



















以上是关于深入浅出hibernate1-持久层概述的主要内容,如果未能解决你的问题,请参考以下文章

Hibernate深入浅出持久层操作——数据保存&批量操作

深入浅出kubernetes(K8S)指南

深入Redis持久化

HBase 深入浅出

深入理解Core Data

Mybatis实现原理深入解析 (转载)