DatabaseMetaData
DatabaseMetaData (데이터베이스 메타데이터)
데이터베이스 전체에 대한 종합적인 정보를 제공합니다. 드라이버 공급업체가 이 인터페이스를 구현해, JDBC 기술 기반 드라이버("JDBC 드라이버")와 함께 사용되는 DBMS의 능력을 사용자에게 알려줍니다.
본문
서로 다른 관계형 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