JDBC 元數據 (DatabaseMetaData,ResultSetMetaData )



Java 通過JDBC獲得連接以后,得到一個Connection 對象,可以從這個對象獲得有關數據庫管理系統的各種信息,包括數據庫中的各個表,表中的各個列,數據類型,觸發器,存儲過程等各方面的信息。根據這些信息,JDBC可以訪問一個實現事先並不了解的數據庫。
獲取這些信息的方法都是在DatabaseMetaData類的對象上實現的,而DataBaseMetaData對象是在Connection對象上獲得的。

 

DatabaseMetaData 類中提供了許多方法用於獲得數據源的各種信息,通過這些方法可以非常詳細的了解數據庫的信息:

  • getURL():返回一個String類對象,代表數據庫的URL。
  • getUserName():返回連接當前數據庫管理系統的用戶名。
  • isReadOnly():返回一個boolean值,指示數據庫是否只允許讀操作。
  • getDatabaseProductName():返回數據庫的產品名稱。
  • getDatabaseProductVersion():返回數據庫的版本號。
  • getDriverName():返回驅動驅動程序的名稱。
  • getDriverVersion():返回驅動程序的版本號。
 1     /**
 2      *  查詢特定數據庫中的所有表
 3      * @param connection 數據庫連接對象
 4      * @return 數據庫表的list
 5      */
 6     public static List<String> getTables(Connection connection){
 7         try {
 8             List<String> tableList = new ArrayList<>();
 9             DatabaseMetaData metaData = connection.getMetaData();
10             ResultSet resultSet = metaData.getTables(null, null, null, new String[]{"TABLE"});
11             while (resultSet.next()){
12                 tableList.add(resultSet.getString(3));
13             }
14             return tableList;
15         } catch (SQLException e) {
16             e.printStackTrace();
17         }
18         return null;
19     }

 

 

可用於獲取關於 ResultSet 對象中列的類型和屬性信息的對象:

  • getColumnName(int column):獲取指定列的名稱
  • getColumnCount():返回當前 ResultSet 對象中的列數。
  • getColumnTypeName(int column):檢索指定列的數據庫特定的類型名稱。
  • getColumnDisplaySize(int column):指示指定列的最大標准寬度,以字符為單位。
  • isNullable(int column):指示指定列中的值是否可以為 null。
  • isAutoIncrement(int column):指示是否自動為指定列進行編號,這樣這些列仍然是只讀的。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM