문제

임의의 관계형 데이터베이스 스키마를 분석하고 조작하는 데 유용한 추상화를 제공하는 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에 사용할 수있는 것이 있습니까? 아니면 내 자신을 굴려야합니까?

도움이 되었습니까?

해결책

ddlutils 당신이 찾고있는 것을 가지고 있습니다. XML (토크 형식) 또는 실시간 데이터베이스에 대한 Schemas를 읽고 쓰거나 순수한 Java에서 데이터베이스 스키마를 정의 할 수도 있습니다. 더 좋은 점은 온라인 Doco를 읽으십시오. 아주 좋습니다.

다른 팁

JDBC 자체는 그러한 추상화가 있습니다. java.sql.databasemetadata를보십시오. 그러나 이것은 표준의 선택적 부분이며 구현되었는지 여부를 사용하는 JDBC 드라이버에 따라 다릅니다.

나는 몇 년 동안 그것을 사용하지 않았지만 최대 절전 모드는 데이터 모델 조작을위한 도구 빌드 시간에. Hibernate에는 또한 하나 이상의 데이터베이스 공급 업체를 목표로하는 경우 도움이되는 개념 방언이 있습니다.

Metamatrix에있을 때 EMF (Eclipse Modeling Framework)를 사용하여 UML에서 표현 메타 모델을 만든 다음 코드에서 생성했습니다. 메타 모델링의 좋은 점은 잘하면 메타 메타 모델에 대해 좋은 선택을 한 경우 메타 모드를 통해 물건을 상호 운용 할 수 있다는 것입니다.

또한 JDBC API에서 메타 데이터를 가져오고 적절한 동등한 모델 객체 (데이터베이스, 테이블, 열, 키 등)를 생성하는 수입업자가있었습니다.

이 코드는 Jboss가 구매 한 이후 언젠가 오픈 소스 일 수 있지만 아직 그렇지 않다고 생각합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top