2013-01-03 4 views
2

그래서 테이블 편집 기능이 필요한 프로젝트에 Vaadin Java 웹 프레임 워크를 사용하고 있습니다. 만약 angel 내가 DatabaseMetaData 개체를 얻을 수있는 Connection에서 ConnectionSimpleJDBCConnectionPool (Here's the API)에서 객체DatabaseMetaData를 사용하여 mysql 테이블 주석 가져 오기

을 얻을 수있는 방법을 제공합니다. 그리고 나는 다음과 같은 코드가 있습니다

private List<String> getTableNames(DatabaseMetaData md) throws SQLException { 
     ArrayList<String> tables = new ArrayList<String>(); 
     ResultSet rs = md.getTables(null, null, "", null); 
     while (rs.next()) { 
      tables.add(rs.getString("TABLE_NAME")); //Column 3 is for table name 
      Logger.getLogger(CodeContainingClass.class.getName()). 
        info("Comment: " + rs.getString("REMARKS")); //Column 5 is for remarks 
     } 
     return tables; 
} 

이 올바르게 테이블 이름을 검색을하지만, 불행하게도 REMARKS 반환 null. (Here's the API). 내가 뭘 잘못하고 있는지 모르겠다.

SHOW TABLE STATUS WHERE Name='tablename'; 

어떤 도움이 크게 감사합니다 :

나는 테이블이 다음과 같은 쿼리를 사용하여 주석을 가지고 있음을 확인했습니다. 고맙습니다.

답변

2

자세한 내용은 MySQL Connector/J bug (2012 년 6 월 27 일 11:26 및 2012 년 6 월 28 일 11:18)입니다. 이 기능을 사용하려면 연결 속성 useInformationSchema=true을 지정해야합니다.

는 연결 URL에 useInformationSchema =이 참의 getTables()을 빈의 ResultSet을 반환 추가하여도 Connector/J Connection properties

+0

참조하십시오. – Monir

+1

''% ''또는''null'로''TableNamePattern' 매개 변수 값을 대체해야 할 수도 있습니다. –

+0

감사합니다. "%"이 (가) 작동했습니다. – Monir

-1

MySQL에서 각 테이블과 관련된 주석은 information_schema에서 얻을 수 있습니다.

이 쿼리를보십시오 :

SELECT TABLE_NAME, TABLE_COMMENT 
    FROM INFORMATION_SCHEMA.TABLES 
    WHERE TABLE_SCHEMA = 'YourDatabaseName' 

당신이 실제로 사용하고있는 데이터베이스 이름을 대체해야합니다.

관련 문제