2010-04-20 63 views
2

我希望能夠檢查,如果我能有一個新的對象編輯數據庫中的一個細胞檢查編輯是有效的數據庫MS-訪問

實例方法聲明:

something.isValid(Object newObject, row, column);

例如案例:

  • 如果編輯單元存儲數 ,我給它一個字符串,該方法 將返回false ...
  • 如果編輯 電池具有比所有其他 條目(唯一的)不同,新的目標是相同的 爲別的,該方法 也將返回false ....

我主要目標... 我想檢查一整行,如果一切都有效,我將編輯整行。

現在,我可以看看我實際上可以編輯的時候,唯一的辦法是通過實際編輯它,看,如果我得到一個錯誤。

編輯:// Interface DatabaseMetaData是一個很好的方法。有沒有SQL命令方法?

****編輯://我覺得像resultsetmeta數據是不夠好。然而,isUnique()方法在哪裏?** edit:// isSigned()完成此操作? 編輯://所以我只是檢查!isSigned()和isWritable()。數據庫列條件呢?例如... X有超過3個字符... **

回答

3

不要使用Object,但只是用它與有問題的數據類型相關聯的類型。你可以找到here更詳細的信息有關的Java對象類型,你應該使用某些數據庫的數據類型與各該表下:

alt text http://java.sun.com/j2se/1.5.0/docs/guide/jdbc/getstart/mapping.anc1.gif

或者,您可以使用DatabaseMetaData#getColumns()推測列信息(列名,數據類型,大小,最大長度,可空值等)。

有許多其他方法可能有用,例如, getIndexInfo()來數字的所有指標,getPrimaryKeys()來數字的PK,getExportedKeys()來數字的FK的,等等。只需在整個DatabaseMetaData API中捅一下就可以發現您需要。

+0

這很有用,但我認爲ResultSetMetaData更容易。思考? – twodayslate 2010-04-21 18:36:01

+1

它包含相同的信息。你只需要創建/準備一個'Statement',然後查詢一個'ResultSet',然後才能得到它。這沒有多大意義。只需使用'Connection',您就可以獲得'DatabaseMetaData'。 – BalusC 2010-04-21 18:37:54

+0

哦,我明白了。這是一個很大的好處。現在改變我更正了RSMD東西DMD東西... – twodayslate 2010-04-21 18:44:41