2008-11-14 4 views
5

임의의 관계형 데이터베이스 스키마를 분석하고 조작하는 데 유용한 추상화를 제공하는 Java 라이브러리를 아는 사람이 있습니까? 나는 Java 용 데이터베이스 모델링 라이브러리가 있습니까?

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

또는 내부적 같은 추상화를해야합니다

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

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

대부분의 데이터베이스 모델링 도구와 같은 테이블을 조작

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

등의 작업을 수행 할 수있는 일을 생각 만 해요 Java에서 사용할 수있는 것이 있습니까, 아니면 내 롤을 사용해야합니까?

답변

4

DdlUtils 당신이 찾고있는 것이 있습니다. 스키마를 XML (Torque 형식) 또는 라이브 데이터베이스에서 읽고 쓸 수 있으며 순수 Java로 데이터베이스 스키마를 정의 할 수도 있습니다. 더 나은 아직, 온라인 doco를 읽으십시오, 아주 좋습니다.

0

나는 몇 년 동안 그것을 사용하지 않았지만 Hibernate는 빌드시에 tools for manipulating data models을 사용했었다. Hibernate는 둘 이상의 데이터베이스 벤더를 목표로 삼을 때 도움이 될 개념 방언을 가지고있다.

+0

내가 아는 한, Hibernate는 기존 매핑 파일로부터 DDL을 생성하는 도구만을 포함하고있다. 이것은 불행히도 내 경우에는 도움이되지 않습니다. 이것이 당신이 의미 한 것입니까, 아니면 다른 것입니까? 감사합니다. – Henning

5

JDBC 자체에는 그러한 추상화가 있습니다. java.sql.DatabaseMetaData를 보라. 그러나 이것은 표준의 선택적 부분이며 구현 된 JDBC 드라이버에 따라 달라집니다.

+0

java.sql.DatabaseMetaData를 구현하는 MySQL Connector 3.1.10을 사용하고 있습니다. 이것은 테이블 정보를 수집하고 표시하는 것과 관련하여 매우 도움이 될 것입니다. 감사! – Henning

0

내가 MetaMatrix에 있었을 때 우리는 EMF (Eclipse Modeling Framework)를 사용하여 UML로 표현 메타 모델을 만든 다음 코드에서 생성했습니다. 메타 모델링에 대한 좋은 점은 메타 메타 모델에 대해 좋은 선택을했다면 메타 모델간에 상호 운용이 가능하다는 것입니다.

또한 JDBC API에서 메타 데이터를 가져 와서 적절한 동등한 모델 개체 (데이터베이스, 테이블, 열, 키 등)를 만드는 가져 오기 도구가 있습니다.

이 코드는 JBoss에서 구입 한 이후 언젠가 오픈 소스 일 수 있지만 아직 생각하지 않습니다.

관련 문제