トップ 差分 一覧 ソース 置換 検索 ヘルプ PDF RSS ログイン

JDBCでテーブル定義を取得

http://japan.internet.com/developer/20060207/26.html
http://www.ne.jp/asahi/hishidama/home/tech/java/jdbc_meta.html

テーブル情報を取得

DatabaseMetaData 

を使うとデータベースの情報が取得できる。

1
2
3
4
5
6
7
8
9
10
11
public void printResultSet(ResultSet rs) throws java.lang.Exception {
    ResultSetMetaData md = rs.getMetaData();
    int count = md.getColumnCount();
    for (int i = 0; i < count; i++){
      System.out.print(md.getColumnName(i+1));
      System.out.print(":");
      System.out.print(rs.getObject(i+1));
      System.out.println();
    }
    System.out.println();
  }

みたいな関数作って

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
      System.out.println("カタログ");
      rs = dmd.getCatalogs();
      while(rs.next()){
        printResultSet(rs);
      }
      rs.close();
      
      System.out.println("スキーマ");
      rs = dmd.getSchemas();
      while(rs.next()){
        printResultSet(rs);
      }
      rs.close();
      
      rs = dmd.getTables(null,null,null,null);
      while(rs.next()){
        System.out.println("**** テーブル ****");
        System.out.println("*** "+rs.getString("TABLE_NAME")+" ***");
        printResultSet(rs);
        
        System.out.println("*** カラム ***");
        rs2 = dmd.getColumns(null,null,rs.getString("TABLE_NAME"),null);
        while(rs2.next()){
          printResultSet(rs2);
        }
        rs2.close();
      }
      rs.close();

で必要な情報が取得できる

[カテゴリ: データベース]



  • Hatenaブックマークに追加
  • livedoorクリップに追加
  • del.icio.usに追加
  • FC2ブックマークに追加

最終更新時間:2012年07月10日 21時47分48秒