2011-08-01 9 views
4

특정 데이터베이스 테이블에 특정 이름의 열이 있는지 확인하는 방법을 궁금합니다. JDBC를 사용하고 있지만 순수한 SQL로 수행 할 수 있다면 더 좋습니다. 그러나 솔루션은 DBMS 공급자와 독립적이어야합니다. 나는 그 테이블의 첫 번째 행을 쿼리하고 그것으로부터 ResultSetMetaData를 얻음으로써 그것을 할 수 있다고 생각하지만, 그것은 테이블에 행이 있다고 가정한다. 나는 빈 테이블을 가지고 일하기를 원할 것이다. 미리 감사드립니다!JDBC에서 열 이름 가져 오기

+0

테이블이 비어 있어도'ResultSetMetaData'는 여전히 작동합니다 ... –

답변

12

DatabaseMetaData에서 얻을 수 있습니다.

DatabaseMetaData meta = connection.getMetaData(); 
ResultSet rs = meta.getColumns(...); 
+3

'getColumns (null, null, tablename, null)'을 사용하여 열을 가져올 때 테이블 이름이 대소 문자임을주의하십시오. 테이블을 위해. – Andrew

2

테이블이 비어 있어도 상관 없습니다. ResultSetMetaData은 ResultSet 객체의 열의 유형과 특성에 대한 정보를 제공합니다.

2

java.sql.DatabaseMetaData 인터페이스를 사용하여 데이터베이스 구조에 대한 일반 정보를 검색 할 수 있습니다.

DatabaseMetaData dbmeta = con.getMetaData(); 

getColumns()를 호출하여 사용 가능한 테이블 열에 대한 설명을 가져옵니다.