淺談 JDBC 元數(shù)據(jù)
Java 通過JDBC獲得連接以后,得到一個(gè)Connection 對(duì)象,可以從這個(gè)對(duì)象獲得有關(guān)數(shù)據(jù)庫管理系統(tǒng)的各種信息,包括數(shù)據(jù)庫中的各個(gè)表,表中的各個(gè)列,數(shù)據(jù)類型,觸發(fā)器,存儲(chǔ)過程等各方面的信息。根據(jù)這些信息,JDBC可以訪問一個(gè)實(shí)現(xiàn)事先并不了解的數(shù)據(jù)庫。
獲取這些信息的方法都是在DatabaseMetaData類的對(duì)象上實(shí)現(xiàn)的,而DataBaseMetaData對(duì)象是在Connection對(duì)象上獲得的。
DatabaseMetaData 類中提供了許多方法用于獲得數(shù)據(jù)源的各種信息,通過這些方法可以非常詳細(xì)的了解數(shù)據(jù)庫的信息:
getURL():返回一個(gè)String類對(duì)象,代表數(shù)據(jù)庫的URL。
getUserName():返回連接當(dāng)前數(shù)據(jù)庫管理系統(tǒng)的用戶名。
isReadOnly():返回一個(gè)boolean值,指示數(shù)據(jù)庫是否只允許讀操作。
getDatabaseProductName():返回?cái)?shù)據(jù)庫的產(chǎn)品名稱。
getDatabaseProductVersion():返回?cái)?shù)據(jù)庫的版本號(hào)。
getDriverName():返回驅(qū)動(dòng)驅(qū)動(dòng)程序的名稱。
getDriverVersion():返回驅(qū)動(dòng)程序的版本號(hào)。
/** * 查詢特定數(shù)據(jù)庫中的所有表 * @param connection 數(shù)據(jù)庫連接對(duì)象 * @return 數(shù)據(jù)庫表的list */ public static List<String> getTables(Connection connection){ try { List<String> tableList = new ArrayList<>(); DatabaseMetaData metaData = connection.getMetaData(); ResultSet resultSet = metaData.getTables(null, null, null, new String[]{"TABLE"}); while (resultSet.next()){ tableList.add(resultSet.getString(3)); } return tableList; } catch (SQLException e) { e.printStackTrace(); } return null; }
可用于獲取關(guān)于 ResultSet 對(duì)象中列的類型和屬性信息的對(duì)象:
getColumnName(int column):獲取指定列的名稱
getColumnCount():返回當(dāng)前 ResultSet 對(duì)象中的列數(shù)。
getColumnTypeName(int column):檢索指定列的數(shù)據(jù)庫特定的類型名稱。
getColumnDisplaySize(int column):指示指定列的最大標(biāo)準(zhǔn)寬度,以字符為單位。
isNullable(int column):指示指定列中的值是否可以為 null。
isAutoIncrement(int column):指示是否自動(dòng)為指定列進(jìn)行編號(hào),這樣這些列仍然是只讀的。
總結(jié)
以上就是本文淺談JDBC 元數(shù)據(jù)的全部內(nèi)容,希望對(duì)大家有所幫助。歡迎大家參閱本站其他專題,有什么問題可以隨時(shí)留言,小編會(huì)及時(shí)回復(fù)大家的。感謝大家對(duì)腳本之家網(wǎng)站的支持!
相關(guān)文章
Spring中使用JSR303請(qǐng)求約束判空的實(shí)現(xiàn)
這篇文章主要介紹了Spring中使用JSR303請(qǐng)求約束判空的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-12-12