请问什么叫数据持久层

fox_sky 2008-04-13 09:55:16
我的一个理解是把数据缓存在内存中,数据读取的时候直接从内存获取。请高手给我一个正式的解释
...全文
788 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
hansuzhi 2009-12-01
  • 打赏
  • 举报
回复
所谓持久就是数据的持久存储。

而数据库是当前最有效的存储结构,所以数据持久层一般就是指:
直接和数据库打交道并保持同步的一个应用层次。比如EJB、Hibernate、iBatis等.

数据持久层是在标准的三层次架构当中的存储层和业务层之间添加了一个中介层。
siyuwl 2009-06-21
  • 打赏
  • 举报
回复
siyuwl 2009-06-21
  • 打赏
  • 举报
回复
fox_sky 2008-04-14
  • 打赏
  • 举报
回复
如果我理解基本正确,就有一个很麻烦的问题:
比如我把一个形如(id,name,age,score)的表的数据持久化,放入内存,这是没问题的,但是系统如何来查询这里面的数据?要知道,用SQL语句来构造各种查询是非常方便的事情,如果不能用某种类似sql的语法来构造查询条件。那就只能靠定义公开函数提供有限支持(跟sql方式相比),请问是如何能解决这个问题呢。
如果我不把数据库的部分数据存入内存,而是用读取数据库方式,但是我把连接存起来,当需要使用的时候从连接池取连接,这种方式虽然不够上面的方法快,但是在查询方面能力我觉得比上面强多了
现在的持久化程度做的已经有多高了,请各位大虾指教
ojekleen 2008-04-14
  • 打赏
  • 举报
回复
楼上正确,持久化即把数据保存到物理存储设备(如硬盘、磁带)中的过程。大多情况是执行SQL语句保存到数据库中。
持久层即对数据持久化操作的应用层。NHIBRENATE的SAVE(),INSERT()等只是缓存并没有持久化,只有FLASH()以后才持久化了。
八爪鱼-杭州 2008-04-14
  • 打赏
  • 举报
回复
你的理解反了。使内存数据变化能够发生永久性的影响才叫持久化。换句话说,如果数据改变了以后,机器断电就没了,那就不叫持久了。一般的持久化概念就是把数据保存到物理存储设备(如硬盘、磁带)中的过程。
HellMoxi 2008-04-13
  • 打赏
  • 举报
回复
理解的基本正确!

110,620

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧