我正在创建一个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应用程序环境中这样做,然后有这种想法总是潜伏在我的脑海里。我不应该使用远程连接而不是将其存储在实际的物理位置,但我不能只知道有人如何在远程连接的上下文中创建和存储对象。我不知道指定哪些参数,即主机,端口用户名和密码,我甚至不知道如何创建数据库连接如何在程序中写入连接到此远程目标文件的语句。
请帮助我并指导我。
非常感谢任何期待的人
答案 0 :(得分:2)
db4o会自动更新对象而不是插入它,但是有一个问题:你必须保持对象容器的打开状态。 db4o使用本地缓存来跟踪存储的对象,但是一旦在对象容器上调用close(),本地现金就会消失。如果你在对象容器上存储一个先前持久化的close(),你将获得一个重复的对象(db4o认为它是一个新对象)。如果你真的必须关闭对象容器并想要更新一个对象,你必须在db4o上查询它,然后更新,然后调用store(然后你可以关闭())。
关于如何连接到远程db4o服务器,请参阅: http://developer.db4o.com/Documentation/Reference/db4o-7.12/java/reference/Content/client-server/networked.htm
最佳! (祝你好运!)