问题标签 [object-persistence]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
304 浏览

python - 如何在python中保存大的“类数据库”类

我正在用reasonalby 大数据库做一个项目。它不是一个适当的 DB 文件,而是一个格式如下的类: DataBase.Nodes.Data=[[] for i in range(1,1000)]fe 这个 DataBase 总共有几千行。第一个问题 - 是我提高效率的方式,还是使用 SQL 或任何其他“适当的”数据库更好,我实际上从未使用过。主要问题 - 我想保存我DataBase class的所有记录,然后在另一个会话中用 Python 重新打开它。这可能吗,我应该使用什么工具?cPickle - 它似乎只适用于字符串,还有其他吗?

在 matlab 中有一个名为保存工作区的非常有用的功能 - 它将所有变量保存到一个文件中,您可以在另一个会话中打开该文件 - 这在 python 中会有所不同!

0 投票
1 回答
1058 浏览

python - 将数据保存到文件的 cPickle 类

我在 Python 中有一个大类,它是“类数据库”类。我想将它保存到文件中 - 所有包括数据。

这是输入(显示问题的示例,在脚本数据库中就像 10000 条记录):

这就是我得到的文件:

没有数据,只有定义。我该如何克服。也许将我的数据保存为一个类不是一个好主意?

0 投票
1 回答
273 浏览

database - 实现透明的持久性

透明持久性允许您使用常规对象而不是数据库。对象会自动从磁盘读取和写入磁盘。此类系统的示例是 Gemstone 和 Rucksack(用于 common lisp)。

他们所做的简化版本:如果您访问foo.bar并且 bar 不在内存中,它将从磁盘加载。如果您这样做,foo.bar = baz则该foo对象将在磁盘上更新。大多数系统还具有某种形式的事务,它们可能支持跨程序甚至跨网络共享对象。

我的问题是实现这类系统的不同技术是什么,这些实现方法之间的权衡是什么?

0 投票
4 回答
360 浏览

c# - 我对对象持久性库的想法有用吗?

首先,如果这不是提出这个问题的合适场所,我深表歉意,但我真的不确定还能从哪里获得意见。

我创建了一个早期版本的 .NET 对象持久性库。它的特点是:

  • 一个非常简单的 POCO 持久化接口。
  • 最重要的是:支持几乎所有可以想象的存储介质。这将是从本地文件系统上的纯文本文件到嵌入式系统(如 SQLite)、任何标准 SQL 服务器(MySQL、postgres、Oracle、SQL Server 等),再到各种 NoSQL 数据库(Mongo、Couch、Redis 等)的所有内容。几乎可以为任何东西编写驱动程序,例如,您可以相当容易地编写一个驱动程序,其中实际的后备存储可能是一个 Web 服务。

当我第一次有这个想法时,我确信它非常棒。我很快创建了一个初始原型。现在,我正处于“困难的部分”,我正在讨论连接池、线程安全以及是否尝试支持 LINQ 的 IQueryable 等问题。我正在更仔细地研究是否值得开发这个库超出我自己的要求。


这是一个基本的用法示例:

现在可以使用的查询界面如下所示:

我还在研究一个替代查询接口,它可以让你传入非常类似于 SQL WHERE 子句的东西。显然,在 NET 世界中,支持 IQueryable / 表达式树会很棒。

由于该库支持许多具有不同功能的存储介质,因此它使用属性来帮助系统充分利用每个驱动程序。

所有属性都是可选的,基本上都是关于性能的。在一个简单的情况下,您不需要它们中的任何一个。

在 SQL 环境中,系统默认会为您创建表和索引,尽管有一个 DbaSafe 选项会阻止系统执行 DDL。

能够在一行代码中将数据从 SQL 引擎迁移到 MongoDB 也很有趣。或压缩到 zip 文件。又回来了。

好的,问题:

根本问题是“这有用吗?” 是否值得花时间真正打磨、使线程安全或连接池化、编写更好的查询接口并上传到某个地方?

  • 是否已经有另一个库已经做了类似的事情,NAMELY,提供一个跨多个数据源工作的单一接口(除了不同种类的 SQL)?
  • 它是在解决需要解决的问题,还是其他人已经更好地解决了它?
  • 如果我继续,您将如何尝试使您的项目可见?

显然这不是 ORM 的替代品(它可以与 ORM 共存,并与您的传统 SQL 服务器共存)。我猜它的主要用例是用于 ORM 过大的简单持久性,或者用于 NoSQL 类型场景以及文档存储类型接口更可取的地方。

0 投票
3 回答
79 浏览

iphone - 如果应用程序关闭时如何保存值

我是 iPhone 编程的新手..

我的应用程序就像一个测验.. 它有不同类型的测验和每个测验类型中的许多问题我想在应用程序关闭时保存字符串(测验名称)和整数(问题编号)等值,所以当应用程序是重新启动我想通过使用保存的值继续它停止的地方

这个怎么做...?

任何机构都可以帮助我做到这一点......

感谢你

0 投票
1 回答
978 浏览

java - JPA 和独特的领域

我的应用程序中有两个持久性对象:事物和附加到事物的标签。该应用程序可以生成带有标签的事物集合。标记对象有一个唯一的名称(用相同的标记标记两次是没有意义的)。

当插入一个事物(附加了标签对象)时,其中一些具有相同名称的标签对象可能已经存在于数据库中。现在这是我不记得关于 JPA 的部分,有没有办法告诉 JPA 如果它违反了唯一约束,它不应该尝试将相应的对象添加到数据库中?或者有没有办法有效地做到这一点而不必先获取所有对象,然后将集合合并到内存中,然后将所有内容写回?

我还想知道是否可以一次持久化整个集合,或者在使用 JPA 时是否必须为每个对象调用持久化?

0 投票
3 回答
2062 浏览

java - 如何使用 java 持久性重试锁定等待超时?

在使用 java 持久性时,我需要澄清重试“可重试”异常(例如,锁定等待超时之类的东西)的正确方法。例如,使用如下伪代码:

如果数据库中有锁,我有时会在 em.persist 调用中抛出异常。我可以将其包装在 try/catch 中并重试(显然有一些计数)?还是我必须包装整个 tx.begin/commit 并重

谢谢

0 投票
5 回答
1510 浏览

delphi - Delphi 是否有任何框架/库接近 Bold/Eco 提供的功能?

不确定在 Borland/Codegear/Embarcadero 过渡期间 Bold/Eco 发生了什么,但我肯定会在较新版本的 Delphi 中错过它。有人知道接近的框架吗?

如果没有,也许您可​​以建议组合使用接近的库和组件。

0 投票
1 回答
131 浏览

oop - 持久性如何改变对象架构?

我正在使用 PHP 中的类。当我写一个类时,我总是在想“这个对象基本上是一次性的;它不会持续超过页面加载。” 因此,我的类中的所有逻辑基本上都是自己构建的,做一些状态更改,给出一些反馈,然后死掉。盐水虾。

正因为如此,我已经开始使用异常来抛出几乎所有的问题,因为如果出现问题,我将无法让用户与对象进行交互。相反,用户会在页面上获得一些关于发生了什么的反馈,然后他们重新提交表单或其他任何内容。无论如何,该对象将在几毫秒内死亡,我将无法获得更多输入来处理该错误。

在我看来,如果我在具有持久性对象的环境中编程,我可能会在对象的方法因异常终止之前做出更强大的警告、错误报告和处理。如果一个对象仍然处于错误或警告状态,我可以从用户那里获得更多输入并继续。所以我的对象看起来和行为会有所不同。

请注意,我要问的不是“PHP 中的对象与其他语言的行为有何不同?” 而是“在 PHP(或其他非持久性环境)中编写对象时,这些对象与能够持久化的对象有何不同?”

0 投票
2 回答
843 浏览

objective-c - 如何在没有 Core Data 或 NSKeyedArchiver 的情况下持久保存由 NSArrayController 管理的数据?

我希望你能原谅这个问题看似广泛的性质,但它变得非常具体。

我正在构建一个基于文档的 Cocoa 应用程序,它与大多数其他应用程序一样工作,只是我将 SQLCipher 用于我的数据存储(SQLite 的一种变体),因为您无法在 Core Data 中设置自己的持久数据存储,并且我也真的需要使用这个。

在我的文档子类中,我有一个NSMutableArray名为categories. 在文档 nib 中,我NSArrayController绑定了 to categories,并且NSCollectionView绑定了数组控制器。

数组中的每个模型对象(每个都是 a Category)都绑定到底层数据存储中的记录,所以当 Category 的某些属性发生变化时,我想调用[category save],当 Category 添加到集合中时,我想再次调用 ,[category save]最后,当一个类别被删除时,[category destroy]

我已经建立了一个部分解决方案,但它在移除要求上分崩离析,在我看来,关于它的一切似乎都在吠叫错误的树。无论如何,这就是发生的事情:

一旦文档和笔尖都加载完毕,我开始观察类别属性,并为其分配一些数据:

我以这样一种方式实现了观察方法,即通知我更改,以便文档可以响应和更新数据存储。

正如您从该列表中看到的(并且您可能已经知道),仅观察属性是不够的categories,我需要观察每个单独的类别,以便在其属性发生更改时通知文档(如名称)所以我可以立即保存更改:

这在我看来就像一个大杂烩,我怀疑我在这里与 Cocoa 对抗,但在大多数情况下它是有效的。

除了删除。当您向界面添加一个按钮并将其分配给数组控制器的remove:操作时,它将正确地从categories我的文档的属性中删除该类别。

这样做时,该类别在仍处于观察状态时被解除分配:

此外,由于在我收到通知之前对象已经被释放,我没有机会[category destroy]从我的观察者那里调用。

一个人应该如何正确地与 NSArrayController 集成以保持对数据模型 pre-Core Data 的更改?如何解决这里的删除问题(或者这完全是错误的方法?)

提前感谢您的任何建议!