2016-08-04 90 views
0

首先,我是Java DB編程新手,所以也許我的方法是錯誤的。所以請記住這一點。現在的問題:如何檢查現有的數據庫是否匹配程序的格式

我的程序讓用戶打開一個現有的Java Derby數據庫。當它打開時,我想檢查數據庫是否包含正確的表,並且每個表都有正確的列 - 不僅僅是名稱,還有類型。到目前爲止,我試圖創建每個表,如果它拋出一個異常,那麼我知道表存在。現在我需要檢查列類型。最佳做法是什麼?硬編碼檢查每個列類型在catch塊中的回答爲here

回答

0

如果你想弄清楚哪些表存在於數據庫中,並且每個表都有哪些列等,有(至少)兩個簡單的方法:

  1. 對問題的SQL查詢德比系統目錄,例如

    select s.schemaname || '' || t.tablename
    從sys.systables噸,sys.sysschemas小號
    其中t.schemaid = s.schemaid 和t.tabletype = 'T' 爲了通過s.schemaname,t.tablename;

  2. 使用API​​由java.sql.DatabaseMetaData提供,其方法如getSchemas()getTables(),和getColumns()

相關問題