すべての接続がデータベーステーブルの名前とフィールド情報を取得するために、データベース接続、以下の表のために取得されたと想定し、これに基づいています。
1つの インポートio.xbs.common.utils.R。 2 インポートio.xbs.datasource.config.DynamicDataSource。 3 インポートorg.springframework.beans.factory.annotation.Autowired。 4 インポートorg.springframework.web.bind.annotation.GetMapping。 5 輸入org.springframework.web.bind.annotation.RequestMapping。 6 インポートorg.springframework.web.bind.annotation.RestController。 7 8 インポートのjava.sql.Connection。 9 インポートのjava.sql.DatabaseMetadata。 10 インポートのjava.sql.ResultSet。 11 インポートjava.sql.SQLExceptionを、 12で 読み込み、java.util.ArrayListのの 13は、 インポートはjava.util.List; 14 15 / ** 16 *は、データベーステーブル構造の情報を取得する 。17 * 18である * @authorのshiyanjun 。19 * / 20である @RestController 21は @RequestMapping ( "/アプリケーション" ) 22は、 パブリック クラスAppTestController { 23である 24 @Autowired 25 プライベートデータソースDynamicDataSource、 26は 27 @GetMapping( "dbTest" ) 28 公衆dbTest R&LT(){ 29 のtry { 30 接続コネチカット= dataSource.getConnection(); 31である 32 //はテーブルの全てを取得する 33である リストの<string> =表中のgetTables(コネティカット); 34である のSystem.out.println(「---- -----------すべてのテーブル名の"+ conn.getCatalog()+"ライブラリ---------------- "を得る); 35 のSystem.out。 println(テーブル); 36 37 // フィールドゲット 38である ため(文字列テーブル:テーブル){ 39 リストの<string>列= OのgetColumns(コネチカット州、テーブル); 40 System.out.println(「テーブルのすべてのフィールド----------------」「---------------ゲット」+テーブル+ ) 、 41である ;のSystem.out.println(列) 42である } 43である } キャッチ(のSQLException E){ 44は e.printStackTrace(); 45 } 46が 戻りR.okを(); 47 } 48 49 / ** 50 *データベースを取得しますすべてのテーブル名 51は、 * 52である * @paramの接続CONNデータベース 53である * @return そのデータベースのテーブル名に 54である * @throwsSQLException 55 * / 56 プライベートリストの<string>のgetTables(接続CONN)がスローするSQLException { 57 のDatabaseMetaDataのmetaData = conn.getMetaDataを(); 58 のResultSet結果セット= metaData.getTables(conn.getCatalog()、 "%"、NULL、新しい文字列[] { "TABLE" })。 59 リスト<文字列>テーブル= 新しい ArrayListを<> (); 60 一方(resultSet.next()){ 61 列tableNameの= resultSet.getString( "TABLE_NAME" )。 62 tables.add(tableNameの)。 } 64の リターン表; 65 } 66 67 / ** 68 *は、テーブルのすべてのフィールドの名前を取得し 69 * 70 * @param コネティカットデータベース接続 71がある * @paramのtableNameのテーブル名 72 * @return テーブルのフィールド名の全 73 * @スローのSQLException 74 * / 75 専用のgetColumns(接続コネティカット、文字列tableNameの)Oリストの<string> スローのSQLException { 76 のDatabaseMetaDataザのmetaData = conn.getMetaDataを(); 77個 のResultSet RS = metaData.getColumns(conn.getCatalog()、NULL、tableNameの、NULL ); 78 リストの<string>列= 新規のArrayList <> (); 79 一方(rs.next()){ 80 文字列名= rs.getString( "COLUMN_NAME" )。 81 columns.add(名); 82 } 83の リターン列。 84 } 85 }