DatabaseMetaData

DatabaseMetaData (데이터베이스 메타데이터)

데이터베이스 전체에 대한 종합적인 정보를 제공합니다. 드라이버 공급업체가 이 인터페이스를 구현해, JDBC 기술 기반 드라이버("JDBC 드라이버")와 함께 사용되는 DBMS의 능력을 사용자에게 알려줍니다.

출처: Java API Reference

본문

서로 다른 관계형 DBMS는 종종 다른 기능을 지원하고, 같은 기능도 다르게 구현하며, 다른 데이터 타입을 사용합니다. 또한 드라이버가 DBMS가 제공하는 것 위에 기능을 구현할 수도 있어요. 이 인터페이스의 메서드가 반환하는 정보는 특정 드라이버와 특정 DBMS가 함께 동작할 때의 능력에 적용됩니다. 이 문서에서 "데이터베이스"라는 용어는 드라이버와 DBMS를 통칭해 일반적으로 사용합니다.

이 인터페이스의 사용자는 보통 아래 DBMS를 어떻게 다룰지 알아내야 하는 도구입니다. 특히 둘 이상의 DBMS와 함께 사용하기 위한 애플리케이션에서 그렇죠. 예를 들어 도구는 getTypeInfo 메서드로 CREATE TABLE 문에서 쓸 수 있는 데이터 타입을 알아내거나, supportsCorrelatedSubqueries로 상관 서브쿼리 사용 가능 여부를, supportsBatchUpdates로 일괄 갱신 가능 여부를 확인할 수 있습니다.

일부 DatabaseMetaData 메서드는 ResultSet 객체 형태로 정보 목록을 반환합니다. getString, getInt 같은 일반 ResultSet 메서드로 이 ResultSet에서 데이터를 가져올 수 있어요. 특정 형태의 메타데이터를 사용할 수 없으면 빈 ResultSet이 반환됩니다.

일부 메서드는 fooPattern 같은 이름의 String 패턴 인자를 받습니다. 패턴에서 "%"는 0개 이상의 문자 하위 문자열과 일치하고, "_"는 임의의 한 문자와 일치합니다.

대표적인 메서드

boolean supportsBatchUpdates() throws SQLException
boolean supportsCorrelatedSubqueries() throws SQLException
ResultSet getTypeInfo() throws SQLException
ResultSet getTables(String catalog, String schemaPattern, String tableNamePattern, String[] types) throws SQLException
int getSQLStateType() throws SQLException

더 알아보기 (Learn more)

Java 공식 API