1

.db4o ファイルを開くとします。データベースに含まれる一意の Java CLASSES/TYPES のリストを生成する Java コード (疑似) は何ですか?

それを行うためのコードを書くことができると確信していますが、かなり遅くなる可能性があるのではないかと心配しています. データベース内のすべてのオブジェクトに対してクエリを実行せずにこれを行う良い方法はありますか? ある種のインデックスを使用できますか?

データベースに関する保存されたメタデータに依存するのではなく、実際にどのオブジェクトが保存されているかについての真の情報に依存したいと思います。

4

1 に答える 1

1

次のようなものを使用できます(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 インターフェイスにはさらに興味深いメソッドがあることに注意してください。

お役に立てれば。

于 2013-08-24T19:32:41.213 に答える