数据持久化

一.概念

简单的理解:将数据保存到可永久保存的存储设备中(如磁盘),一台计算器中分为两种存储,一个是内存理解为暂时存储的地方,另一个是磁盘数据库理解为可以永远存储的地方。

百度解释:数据持久化就是将内存中的数据模型转换为存储模型,以及将存储模型转换为内存中的数据模型的统称. 数据模型可以是任何数据结构或对象模型,存储模型可以是关系模型、XML、二进制流等。cmp和Hibernate只是对象模型到关系模型之间转换的不同实现。

错误的理解:因为对象模型和关系模型的广泛应用使大家误认为数据持久化就是对象模型到关系型数据库之间的转换。

数据持久化

二.数据持久化的好处

1、程序代码重用性强,松散耦合,即使更换数据库,只需要更改配置文件,不必重写程序代码。

2、业务逻辑代码可读性强,在代码中不会有大量的SQL语言,提高程序的可读性。

3、持久化技术可以自动优化,以减少对数据库的访问量,提高程序运行效率。
数据持久化对象的基本操作有:保存、更新、删除、查询等。

三.应用举例

hibernate框架中数据持久化机制
原理:在业务程序和数据库之间,使用Session作为中介完成对数据库的更新,删除,修改,查询

1.向数据库提交数据
在自己编写的程序中保存或者修改对象时,会先把需要更改的数据保存到Session会话中,然后再根据框架的配置文件HQL语句,自动或手动决定一个时间把数据提交到数据库。

2.从数据库查询数据
在进行查询数据操作之前,需要清理session缓存(可以自己手动清理,也或者通过配置文件框架自动清理缓存)清理缓存的目的是为了使Session会话中的数据与数据库中的数据保持一致始终是最新的数据,而不是上一个程序所遗存下来的数据。然后程序只需要查询Session会话缓存中的数据就拿到数据库中的数据。

3.实例总结
数据持久化是解决最大的问题就是程序与数据库之间交互访问的问题,使程序不直接访问数据库与数据库交互数据,而是通过访问Session会话,然后由Session会话与数据库“打交道”。前提是只要确保,程序每次访问Session中的数据时,与数据库中的数据保持一致,是最新的数据,就不会出现错误。