博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
数据持久层
阅读量:6184 次
发布时间:2019-06-21

本文共 1834 字,大约阅读时间需要 6 分钟。

1.数据持久化

  数据持久化就是将内存中的数据模型转换为存储模型,以及将存储模型转换为内存中的数据模型的统称.

  数据模型可以是任何数据结构或对象模型,

  存储模型可以是关系模型、XML、二进制流等。

  cmp和Hibernate只是对象到关系模型之间转换的不同实现。

  数据持久化的好处:

1、程序代码重用性强,即使更换数据库,只需要更改配置文件,不必重写程序代码。
2、业务逻辑代码可读性强,在代码中不会有大量的SQL语言,提高程序的可读性。
3、持久化技术可以自动优化,以减少对数据库的访问量,提高程序运行效率。
 
数据持久化对象的基本操作有:保存、更新、删除、查询等。
 
Hibernate框架中数据持久化机制:
  在业务程序与数据库之间,Hibernate框架使用Session会话,来完成数据的提交、更新、删除、查询等等。
  1、向数据库提交数据
在程序中保存对象时,会把数据保存到Session会话中,然后根据框架的配置文件,自动或手动决定什么时候把这种保存提交到数据库。
  2、从数据库中查询数据
在查询数据之前,需要清理缓存(手动清理,或者通过配置文件框架自动清理)清理缓存的目的是为了使Session会话中的数据与数据库中的数据保持一致。然后程序只需要查询Session会话中的数据即可。
  总之, 数据持久化是解决程序与数据库之间交互访问的问题,使程序不直接访问数据库,而是直接访问Session会话,然后由Session会话与数据库“打交道”。只要确保,程序每次访问Session中的数据时,与数据库中的数据保持一致,就不会出现错误。

2.持久层

  持久:英文即 persistence。就是把数据保存到可掉电式存储设备中。

3.数据持久层

  的是指(Presentation),(Business Logic)以及基础架构层(Infrastructure),这样的划分非常经典,但是在实际的项目开发中,开发者通常对三层结构进行扩展来满足一些项目的具体要求,一个最常用的扩展就是将三层体系扩展为五层体系,即表示层(Presentation)、控制/中介层(Controller/Mediator)、领域层(Domain)、数据持久层(Data Persistence)和数据源层(Data Source)。

 

  在Java数据库开发中,常常会提到数据持久层这一概念,在Java EE的三层结构是表示层、业务逻辑层、数据持久层,即通常说的MVC模式。数据持久层的主要任务是负责数据的存储,数据库持久层就是MVC的M层也就是Model层。

  1.数据持久层的含义

  数据持久层是位于业务逻辑层和数据库之间,用于存储数据的一个模块。把数据持久层单独作为J2EE体系的一个层提出来的原因就是能够在对象-关系数据库之间提供一个成功的企业级映射解决方案,尽最大可能弥补这两种范例之间的差异,其目的是通过持久层的框架将数据库存储从服务层中分离出来是,持久层框架有两种方向:直接自己编写JDBC等SQL语句(如iBatis);使用O/R Mapping技术实现的Hibernate和JDO技术;当然还有JavaBean中的实体Bean技术。

  2.数据持久层设计

  数据持久层的设计目标是为整个项目提供一个高层、统一、安全和并发的数据持久机制。完成对各种数据进行持久化的编程工作,并为系统业务逻辑层提供服务。合理的数据持久层和设计能够简化数据增、删、改、查等功能的开发过程,同时又不丧失多层结构的天然优势,继承延续J2EE特有的可伸缩性和可扩展性。O/R映射是数据持久层设计的主要课题,O/R映射是Object/Relation映射,是对象和关系型数据库表之间的映射。数据持久层框架的出现,大大完善了数据持久层的设计。

  3.数据持久层框架

  数据持久层框架是为了解决持久层设计而出现的,Java EE开发中的持久层框架有很多,目前做的最好的还是Hibernate框架,它是一个完全自动化的持久层框架。Hibernate框架是一个开源的数据持久层框架。Hibernate是一种ORM框架,全称Object-Relative Database-Mapping,在Java对象与关系数据库之间建立某种映射,以实现直接存取Java 对象(一般为POJO或者VO)。ORM框架是不同于MVC的另一种思想的框架,使用范围也与MVC截然不同。

转载地址:http://htsda.baihongyu.com/

你可能感兴趣的文章
.htaccess文件的作用(访问控制)
查看>>
了解你所不知道的SMON功能(四):维护col_usage$字典基表
查看>>
saltstack的安装和初步试用体验
查看>>
wall命令
查看>>
演示针对LVM分区的管理
查看>>
老王学linux-centos6.7RHCS
查看>>
string与CString
查看>>
深入实践Spring Boot1.6 小结
查看>>
为什么会"well-known file is not secure" ?
查看>>
ThinkPHP隐藏index.php的方法汇总【IIS/Apache/Nginx】
查看>>
<转>进程与线程的一个简单解释
查看>>
typescript 学习教程 (1)
查看>>
Hadoop 解除 "Name node is in safe mode"
查看>>
正则表达式
查看>>
字符串处理的练习~
查看>>
一名网工对Linux运维的一次经历
查看>>
jdbc中如何使用classloader
查看>>
在Struts2中方便获得Spring中的Bean方法
查看>>
「ThinkPHP开发者周刊」第2期
查看>>
思达报表工具Style Report基础教程—交叉表
查看>>