代码之家  ›  专栏  ›  技术社区  ›  Henning

有Java的数据库建模库吗?

  •  5
  • Henning  · 技术社区  · 16 年前

    有人知道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 回复  |  直到 7 年前
        1
  •  4
  •   Andrew Swan    16 年前

    DdlUtils 拥有你想要的。您可以读/写模式到/从XML(以扭矩格式)或活的数据库,甚至在纯Java中定义数据库模式。更好的是,阅读在线文档,这很好。

        2
  •  5
  •   Gowri    16 年前

    JDBC本身就有这样一个抽象。查看java.sql.databasemetadata。然而,这是标准的一个可选部分,它取决于您使用的JDBC驱动程序,不管它是否被实现。

        3
  •  0
  •   digitalsanctum    16 年前

    我已经好几年没用了,但是Hibernate以前 tools for manipulating data models 在建造时间。Hibernate还具有概念方言,如果您的目标是多个数据库供应商,这将很有帮助。

        4
  •  0
  •   Alex Miller    16 年前

    当我在MetaMatrix时,我们使用EMF(Eclipse建模框架)构建了这样一个东西,我们在UML中创建了一个表示性的元模型,然后从代码中生成它。元建模的好处在于,如果您做得很好,那么您可以跨元模型进行互操作,前提是您已经对元模型做出了很好的选择。

    我们还拥有一个导入器,可以从JDBCAPI导入元数据,并创建适当的等效模型对象(数据库、表、列、键等)。

    这段代码可能是开源的,因为有一天它们被JBoss购买了,但我认为还没有。