• 数据持久层


    1.数据持久化

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

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

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

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

      数据持久化的好处:

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

    2.持久层

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

    3.数据持久层

      J2EE三层结构是指表示层(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-R保存修改elative Database-Mapping,在Java对象与关系数据库之间建立某种映射,以实现直接存取Java 对象(一般为POJO或者VO)。ORM框架是不同于MVC的另一种思想的框架,使用范围也与MVC截然不同。

  • 相关阅读:
    Arduino学习笔记10
    Arduino学习笔记07
    Arduino学习笔记6
    Arduino学习笔记5
    Arduino学习笔记4
    Arduino学习笔记3
    linux下库文件的编程
    学习编程语言究竟学什么
    Arduino学习笔记2---数字温度计
    Arduino学习笔记0---开发板的了解
  • 原文地址:https://www.cnblogs.com/haimishasha/p/5517903.html
Copyright © 2020-2023  润新知