トップ 一覧 置換 検索 ヘルプ RSS ログイン

JDBCでテーブル定義を取得の変更点

  • 追加された行はこのように表示されます。
  • 削除された行はこのように表示されます。
http://hp.vector.co.jp/authors/VA014436/prg_memo/database/all/004.html
http://japan.internet.com/developer/20060207/26.html
http://www.ne.jp/asahi/hishidama/home/tech/java/jdbc_meta.html

!ODBCデータソース
,ドライバ,接続文字列
,ODBCドライバ ,DSN=[データソース名]; UID=[ユーザID]; PWD=[パスワード]
!!!テーブル情報を取得
 DatabaseMetaData 
を使うとデータベースの情報が取得できる。

!SQLServer
,ドライバ,接続文字列
,OLE DBプロバイダ ,Provider=SQLOLEDB;Data Source=[接続先サーバ];User Id=[ユーザID];Password=[パスワード];Initial Catalog=[データベース]
,ODBCプロバイダ ,Driver={SQL Server};Server=[接続先サーバ];Uid=[ユーザID];Pwd=[パスワード];Database=[データベース]
,JDBC ,jdbc:sqlserver://[serverName[\instanceName][:portNumber]][;property=value[;property=value]]
{{code Java,
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();
  }
}}
みたいな関数作って

!Access
,ドライバ,接続文字列
,OLE DBプロバイダ ,Provider=Microsoft.Jet.OLEDB.4.0;Data Source=[MDBファイルのファイルパス];User Id=[ユーザID];Password=[パスワード]
,ODBCプロバイダ ,Driver={Microsoft Access Driver (*.mdb)};DBQ=[MDBファイルのファイルパス];Uid=[ユーザID];Pwd=[パスワード]
,JDBC ,jdbc:odbc:DRIVER={Microsoft Access Driver (*.mdb)};DBQ=[MDBファイルのファイルパス]

※JDBCの場合、"Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");"を行う必要がある
※パスワード付DB(セキュリティの設定で行えるデータベースのパスワード)にアクセスする場合は、以下の例のように接続文字を作成する。
  例 Driver={Microsoft Access Driver (*.mdb)};DBQ=[MDBファイルのファイルパス];Pwd=[パスワード]
  
!Oracle
Oracle製
,ドライバ,接続文字列
,OLE DBプロバイダ ,Provider=OraOLEDB.Oracle;Data Source=[接続文字列];User Id=[ユーザID];Password=[パスワード]
,ODBCプロバイダ ,Driver={Oracle in OraHome92};DBQ=[接続文字列];UID=[ユーザID];PWD=[パスワード]
,JDBC Thinドライバ ,jdbc:oracle:thin:@[ホスト名]:[ポート番号]:[接続するデータベースのSID]
,JDBC OCIドライバ ,"jdbc:oracle:oci8:@[tnsnames.oraに登録されているデータベースサービス名L],[ユーザーID],[パスワード]"
※ODBCプロバイダはバージョンによりドライバ名が変わる
※JDBCの場合、"Class.forName(oracle.jdbc.driver.OracleDriver);"を行う必要がある

!Microsoft製
,ドライバ,接続文字列
,OLE DBプロバイダ ,Provider=MSDAORA;Data Source=[接続文字列];User Id=[ユーザID];Password=[パスワード]
,ODBCプロバイダ ,Driver={Microsoft ODBC for Oracle};Server=[接続文字列];UID=[ユーザID];PWD=[パスワード]
※ODBCプロバイダで接続する場合、Microsoft Oracle ODBC ドライバ 2.0 と以上バージョンのMicrosoft Data Access Components ( MDAC )のコンポーネントであるバージョン 2.5 が必要になる(と思われる)

!DB2
,ドライバ,接続文字列
,OLE DBプロバイダ ,Provider=IBMDADB2;DSN=[source];User ID=[user];Password=[password]
,ODBCプロバイダ , 
,JDBC type2 ,jdbc:db2:[DB名]
,JDBC type4 ,jdbc:db2://[ホスト名:ポート番号/DB名]

!PostgreSQL
,ドライバ,接続文字列
,OLE DBプロバイダ ,Provider=PostgreSQL OLE DB Provider;Data Source=localhost;Location=[データベース];User ID=[ユーザID];Password=[パスワード]
,ODBCプロバイダ ,Driver={PostgreSQL};Server=localhost;Database=[データベース];UID=[ユーザID];PWD=[パスワード];Port=5432;

!Excel
「シート名+$」がテーブル名
,ドライバ,接続文字列
,OLE DBプロバイダ ,Provider=Microsoft.Jet.OLEDB.4.0;Data Source=[Excelブックのファイルパス];Extended Properties="Excel 8.0;HDR=Yes;IMEX=1"
,ODBCプロバイダ ,Driver={Microsoft Excel Driver (*.xls)};DBQ=[Excelブックのファイルパス]

!CSV
ファイル名がテーブル名
,ドライバ,接続文字列
,OLE DBプロバイダ ,Provider=Microsoft.Jet.OLEDB.4.0;Data Source=[CSVファイルの「ディレクトリの」パス];Extended Properties="text;HDR=Yes;FMT=Delimited"
,ODBCプロバイダ ,Driver={Microsoft Text Driver (*.txt; *.csv)};DBQ=[CSVファイルの「ディレクトリの」パス]

!MySQL
,ドライバ,接続文字列
,OLE DBプロバイダ , 
,ODBCプロバイダ ,Driver={mySQL ODBC x.xx Driver};Server=[接続先サーバ];Port=3306;Option=131072;Stmt=SET CHARACTER SET SJIS;Database=[データベース];Uid=[ユーザID];Pwd=[パスワード]
,JDBC ,"jdbc:mysql://[host][,failoverhost...][:port]/[database] << [?propertyName1][=propertyValue1][&propertyName2][=propertyValue2]..."
※ODBCプロバイダはバージョンによりドライバ名が変わる

!HTML
HTMLのTABLEタグ(title、caption、Table[n])がテーブル
,ドライバ,接続文字列
,OLE DBプロバイダ ,Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\test.html;Extended Properties="HTML Import;HDR=Yes;"
,ODBCプロバイダ , 

!Outlook
各メールフォルダ名がテーブル名。サブディレクトリは「MAPILEVEL=親フォルダ|子フォルダ」
,ドライバ,接続文字列
,OLE DBプロバイダ ,Provider=Microsoft.Jet.OLEDB.4.0;Exchange 4.0;MAPILEVEL=保存フォルダ|;TABLETYPE=0;Database=C:\Documents and Settings\xxx\Local Settings\Temp
,ODBCプロバイダ , 


{{code Java,
      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();
}}
で必要な情報が取得できる

{{category2 データベース}}