5

任意のリレーショナル データベース スキーマを分析および操作するための便利な抽象化を提供する Java ライブラリを知っている人はいますか? 私は次のようなことができる何かを考えています

LibraryClass dbLib = ...;
DbSchema schema = dbLib.getSchema("my_schema");
List<DbTable> tables = schema.getTables();

DbTable myTable  = ...
for(DbColumn col : myTable.getColumns()){
    ... = col.getType();
}

または、次のようなテーブルを操作することさえできます

myTable.addColumn(
    new DbColumn("my_new_column", Type.UNSIGNED_INTEGER);
);

DbColumn myColumn = ...
myTable.removeColumn(myColumn);

ほとんどのデータベース モデリング ツールは内部的にこのような抽象化を備えていますが、Java で使用できるものはありますか?それとも自分で作成する必要がありますか?

4

4 に答える 4

5

JDBC 自体にそのような抽象化があります。java.sql.DatabaseMetaData を見てください。ただし、これは標準のオプション部分であり、実装されているかどうかにかかわらず、使用している JDBC ドライバーによって異なります。

于 2008-11-14T14:17:01.700 に答える
4

DdlUtilsには、探しているものが含まれています。XML (Torque 形式) またはライブ データベースとの間でスキーマを読み書きすることも、純粋な Java でデータベース スキーマを定義することもできます。いっそのこと、オンラインドコを読んでみると、かなりいいです。

于 2009-06-12T04:13:45.163 に答える
0

私が MetaMatrix にいたとき、EMF (Eclipse Modeling Framework) を使用して、UML で表現メタモデルを作成し、それをコードから生成するようなものを構築しました。メタモデリングの良いところは、うまくやれば、メタモデルに対して適切な選択をすれば、メタモデル間で物事を相互運用できることです。

また、JDBC API からメタデータをインポートし、適切な同等のモデル オブジェクト (データベース、テーブル、列、キーなど) を作成するインポーターもありました。

このコードは、JBoss に買収されたので、いつかオープン ソースになるかもしれませんが、まだだとは思いません。

于 2008-11-15T03:26:30.030 に答える
0

何年も使っていませんが、Hibernate にはビルド時にデータ モデルを操作するためのツールがありました。Hibernate には、複数のデータベース ベンダーをターゲットにしている場合に役立つ概念方言もあります。

于 2008-11-14T14:09:18.377 に答える