在机器重启后,能重新读入以前数据的应用大部分后端都使用了一个数据库,而数据库大部分以数据表结构组织数据,而应用程序部分使用的是面向对象结构,这种不兼容导致出现了一堆Beans、DAL、ORM层。
十年前开发人员想统一应用软件与数据库之间的开发方式,90%的软件功能与数据都不在首页,他们希望软件关闭重启后完全恢复之前的用户操作状态,整个用户界面是从数据库中Select()出来,而不是new一个页面对象,再绑定几个Bean,大部分这类软件都是专用商业软件,没有大规模流行,但也有好的开源产品进行尝试。
Db4o是其中一个,这个产品有近十年没重要更新了,是一个非常好帮助新用户学习编写数据库的产品,完全OOP代码结构。
如果不是拿来学习,而是直接使用,这个Db4o数据库也是非常容易使用的,因为是OOP数据库,备份也方便,复制文件就行了。
JAVA 版本代码
public static void accessDb4o() {
ObjectContainer db = Db4oEmbedded.openFile(Db4oEmbedded
.newConfiguration(), DB4OFILENAME); try {
storeFirstPilot(db);
} finally {
db.close();
}
}public static void storeFirstPilot(ObjectContainer db) {
Pilot pilot1 = new Pilot("Michael Schumacher", 100);
db.store(pilot1);
System.out.println("Stored " + pilot1);
}
C#版本代码
public static void AccessDb4o(){ using(IObjectContainer db = Db4oEmbedded.OpenFile(YapFileName))
{
StoreFirstPilot(db);
}
}public static void StoreFirstPilot(IObjectContainer db){
Pilot pilot1 = new Pilot("Michael Schumacher", 100);
db.Store(pilot1);
Console.WriteLine("Stored {0}", pilot1);
}
Db4o GPL 源码下载 https://github.com/iboxdb/db4o-gpl
可以先从API文档看源码
.NET Docs Db4oEmbedded
JAVA Docs Db4oEmbedded