1.このオブジェクトのインスタンスを取得します
接続con; con = drivermanager.getConnection(url、username、password); databasemetadata dbmd = con.getmetadata();
2。メソッドgetTablesの使用
プロトタイプ:
resultet databasemetadata.getTables(文字列カタログ、文字列スキーマ、文字列タブネーム、文字列[]タイプ)
この方法では、結果セットの結果セットを返すことができ、結果セットに5列があります。境界を超えた場合、バウンド外の例外が報告されます。
関数の説明:指定されたパラメーターのテーブル情報を取得する
パラメーター説明:
パラメーター:カタログ:ディレクトリ名、通常は空。
パラメータ:スキーマ:データベース名、Oracleのユーザー名パラメーター:TableName:テーブル名パラメーター:タイプ:テーブルタイプ(表|ビュー)
注:使用中、パラメーター名は資本でなければなりません。そうでなければあなたは何かを手に入れます。
3。メソッドgetColumnsの使用
関数の説明:指定されたテーブルの列情報を取得します。
プロトタイプ:
resultet databasemetadata getColumns(文字列カタログ、文字列スキーマ、文字列タブネーム、文字列列名)
パラメーター説明:
パラメーターカタログ:カテゴリ名パラメータースキーマ:ユーザースキーム名パラメーターTableName:データベーステーブル名パラメーター列名:列名
4。getPrimarykeysの使用方法
関数の説明:指定されたテーブルの主要なキー情報を取得します。
プロトタイプ:
resultet databasemetadata getPrimarykeys(文字列カタログ、文字列スキーマ、文字列タブネーム)
パラメーター説明:
パラメーターカタログ:カテゴリ名パラメータースキーマ:ユーザースキーム名パラメータータブネーム:データベーステーブル名
注:必ずテーブル名を指定してください。そうしないと、返品値には何もありません。
5。method.usage of gettypeinfo()
関数の説明:現在のデータベースのデータ型情報を取得します。
6。getExportedKeysの使用方法
関数の説明:指定されたテーブルの外部キー情報を取得します。
パラメーター説明:
パラメーターカタログ:カテゴリ名パラメータースキーマ:ユーザースキーム名パラメータータブネーム:データベーステーブル名
MySQLとOracleを例として使用して、これら2つのパラメーターを説明しましょう。
OracleおよびMySQLデータの組織構造は完全に異なります。直感的な外観に関しては、テーブルとビューを添付する方法は異なります。 Oracleでは、ユーザー管理メカニズムが採用されています。テーブルとビューが特定のユーザーに添付されると、ユーザーはOracleの「スキーマ」になります。 MySQLでは、テーブルとビューがデータベースに直接接続されています。このようにして、Oralceでカタログを取得することはnullになり、Schemaを取得することはユーザー名のリストです。 MySQLで取得したカタログはデータベース名リストであり、スキーマはnullです。読者は、DataBaseMetadataによって提供される次の2つの方法をテストでき、両方の結果データ型を返します。
//カテゴリ定義を取得します
rs = dbmd.getCatalogs();
//パターン定義を取得します
rs = dbmd.getschemas();
上記の分析に基づいて:
データベースがMySQLの場合:最初のパラメーターカタログはデータベースの名前になります。このアイテムがnullの場合、それはURL文字列で指定されたデータベース名であり、2番目のパラメータースキーマがnullに記入します。
データベースがOralceの場合:最初のパラメーターカタログはnullです。2番目のパラメータースキーマは、「Scott」などの大文字のユーザー名に記入されます。アイテムがnullの場合、クエリスコープはすべてスキーマユーザーです。
戻り値分析
メソッドgetTablesの返品値は結果セット(結果セット)です。結果セットの情報については、テーブルの関連情報については、20個以上のアイテムがJDK1.5に予約されています。ただし、すべてのデータがこれらの20個以上のアイテムを返すわけではありません。多くの場合、4つのアイテムを使用できます。
Table_schem:Oracleの場合、それはMySQLの大文字のユーザー名とnullです。
Table_name:テーブルの名前。
table_cat = oracleのnull for oracleおよびmysqlのデータベース名。
table_type =テーブルタイプ、4番目のパラメータータイプ配列のアイテムに基づいてテーブルとビューに使用されます。
java.sql.connection; Import java.sql.databasemetadata; Import java.sql.drivermanager; Import java.sql.Resultset; Import Java.sqlectece; Import java.sql.Statementmen. {private string url = "jdbc:oracle:thin:@localhost:1521:zhyl"; // serverアドレス:、ポート番号:1521、データベースインスタンス名:zhyl。 private string username = "andatabase"; private string pw = "oracl"; private connection conn = null; //ユーザー名とパスワードは自分で作成されます。 public connection openconn(){try {class.forname( "oracle.jdbc.driver.oracledriver"); try {conn = drivermanager.getConnection(url、username、PW) {// todo auto-enerated catch blocke.printstacktrace();} return conn;} public resultet executequery(string sql){dababase db = new dababase(); resultet rs = null; connection con = db.openconn(); try {ステートメントSM = con.createStatement(); rs = sm.executequery(sql); } catch(sqlexception e){// todo auto-enerated catch block e.printstacktrace(); } return rs;} public void close(){try {conn.close(); } catch(sqlexception e){// todo auto-enerated catch block e.printstacktrace(); }} //データベース内のすべてのテーブルのテーブル名を取得し、それらをリスト構造に追加します。 Public List getTableNameList(Connection conn)はsqlexception {databasemetadata dbmd = conn.getMetadata(); //現在のユーザーおよびActabase結果rs = dbmd.getTables( "null"、 "and" andAtabase "、"、 "%"、new String [] {"" "" "" "" "" "" "" "" Teable "、"% "、 }); // System.out.println( "kkkkkkkkkk"+dbmd.getTables( "null"、 "%"、 "%"、new String [] {"Table"}); List TableNameList = new ArrayList(); TableNameList;} //データテーブル内のすべての列の列名を取得し、それらをリスト構造に追加します。 Public List getColumnNameList(Connection Conn、String TableName)はsqlexception {databasemetadata dbmd = conn.getmetadata(); restet rs = dbmd.getColumns(null、 "%"、tablename、 "%"); list columnnameList = new Arraylist(); while(rs.next()){columnnameList.add(rs.getString( "column_name"));} return columnnameList;} public static void main(string s [])throws squlase {dababase dbconn = new dababase(); connection conn = dbconn.openconn() failed "); elseSystem.out.println(" conn custed "); try {list tablelist = dbconn.getTableNameList(conn); // system.out.println(tablelist.size()); for(object object:tablelist){string ss =(string)object; system.out.println(ss);}} catch(sqlextrace e){e.printstacktrace();}最後に{if(conn!= null){try {conn.close();} catch(sqlexception e){e.printstacktrace();上記は、Javaの完全な内容で、Oracleデータベースのすべてのテーブル、DatabaseMetadata(詳細な説明)が編集者によってもたらされました。誰もがwulin.comをサポートすることを願っています〜