说我打开一个.db4o文件。什么是Java代码(psuedo)会生成数据库中包含的唯一Java CLASSES / TYPES列表?
我确信我可以编写代码来执行此操作,但我担心它可能会很慢。有没有一种好方法可以在不查询数据库中的每个对象的情况下执行此操作?我可以使用某种索引吗?
我宁愿不依赖存储的数据库元数据,我宁愿依赖关于实际存储的对象的真实信息。
答案 0 :(得分:2)
您可以使用类似的东西(C#,但它可以很容易地转换为Java:)
const string DatabaseFileName = "c:\\temp\\Learning.odb";
static void Main(string[] args)
{
using (var db = Db4oEmbedded.OpenFile(DatabaseFileName))
{
var classes = db.Ext().StoredClasses();
foreach (var @class in classes)
{
Console.WriteLine();
Console.WriteLine(@class.GetName());
foreach (var field in @class.GetStoredFields())
{
Console.WriteLine("\t{1} {0}", field.GetName(), field.GetStoredType().GetName());
}
}
}
}
请注意,ExtObjectContainer接口中有更多有趣的方法。
希望这有帮助。