ObjectConatainer
Db4o给你简单直接的接口来实现对象的持久化,这就是ObjectContainer.在.NET版本里,相应的名字是IObjectContainer。
ObjectConatainer 是你的Db4o的数据库。
Java:ObjectContainer container = Db4o.openFile(filename)
带有路径的文件名是你要存储对象的文件。通常,当应用开始,你应该打开一个ObjectContainer,并在这个session 结束把对对象的改动持续化到物理存储设备上时关闭ObjectContainer.
(通常而言,打开一个ObjectContainer 表示一个新的session)
Java:container.close()
ObjectContainer 提供给用户持续化对象的所有基本的方法。通常而言,你能保存,修改一个对象通过 ObjectContainer#set(object)
删除的方法如下:
ObjectContainer#delete(object)
通过ObjectContainer#get(object),你可以得到对象。
ObjectContainer的独特的功能如下:
一个ObjectContainer既可以采用单用户模式,也可以通过客户端连接DB4O的服务端。
每一个ObjectContainer 有自己的事务,所有的操作都在事务中。当你打开一个ObjectContainer时,你就处于一个事务中,当你调用
commit() 或者roolback()这个事务被立即执行。
每个ObjectContainer保持自己的应用来存储和持续化对象。通过这样,它保证对象的一致性并实现了高性能。
ObjectContainer对你而言是开发的,只要你的应用依赖于它。当你关闭ObjectContainer,在内存中所有数据库对象引用被收集。
ObjectContainer提供的基本功能足够满足你使用DB4O数据库,其他高级接口是继承了ObjectContainer的ExtObjectContainer.
分开基本与高级功能的基本思想是:
保证根包于命名空间比较小,和有好的可读性。
分离主要的和可选的功能。
使其他产品比较容易实现基本DB4O接口。
展示一个轻量级的DB40.
每一个ObjectContainer也是ExtObjectContainer.你可以直接把它强制转换为
ExtObjectContainer,也可以通过ext()方法得到ExtObjectContainer使用高级特性。