0

我正在创建一个 db4o 对象(即 Customer.yap),如果它已经创建,我只需将新对象插入现有对象(即 Customer.yap)。

对于这两个操作,我只是在使用:

IObjectContainer db1 = Db4oEmbedded.OpenFile(Db4oEmbedded.NewConfiguration(),@"C:\Users\admin\Desktop\Db4oObjectFiles\Components.yap");

        try

        {

            db1.Store(comp1);

        }



        finally

        {

            db1.Close();

        }

我做对了吗,还是有一个单独的命令来检查对象是否存在然后插入值,或者我可以对这两个操作使用相同的代码,这意味着 db4o 会自动检查对象是否存在于指定位置,如果它存在则插入对象,否则它会在指定位置创建对象,然后插入对象。

请帮我

感谢期待

PS:我是在 asp.net 中的 web 应用程序的上下文中执行此操作的,然后这个想法一直潜伏在我的脑海中。我不应该使用远程连接而不是将其存储在实际的物理位置,但我不能仅仅弄清楚某人如何在远程连接的上下文中创建和存储对象。我不知道要指定哪些参数,即主机、端口用户名和密码,我什至不知道有人如何创建数据库连接,应该在程序中编写哪些语句来连接到这个远程目标文件。

请帮助我并指导我。

非常感谢任何期待的人

4

1 回答 1

2

db4o 自动更新对象而不是插入它,但有一个问题:您必须保持对象容器打开。db4o 使用本地缓存来跟踪存储的对象,但是一旦您在对象容器上调用 close(),本地现金就消失了。如果您在对象容器上的 close() 之后存储先前持久的对象,您将获得一个重复的对象(db4o 认为它是一个新对象)。如果您确实必须关闭对象容器并想要更新对象,则必须在 db4o 上查询它,然后更新,然后调用 store(然后您可以 close())。

关于如何连接到远程 db4o 服务器,请参阅:http: //developer.db4o.com/Documentation/Reference/db4o-7.12/java/reference/Content/client-server/networked.htm

最好的!(祝你好运!)

于 2011-04-11T17:13:38.317 回答