Search code examples
javadatabaserdbmsmodeling

Is there a database modelling library for Java?


Does anyone know of a Java library that provides a useful abstraction for analyzing and manipulating arbitrary relational database schemata? I'm thinking of something that could do things like

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

and

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

or even manipulate tables like

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

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

Most Database modeling tools will have such an abstraction internally, but is there one in Java that I can use, or will I have to roll my own?


Solution

  • DdlUtils has what you're looking for. You can read/write schemas to/from XML (in Torque format) or a live database, or even define the database schema in pure Java. Better yet, read the on-line doco, it's quite good.