前段時間用Struts開發了一個B/S結構的信息管理系統,其中有一個功能是要求管理員能夠對數據字典進行修改,數據字典的表結構基本上都是table(id,name),id為數據庫其它表中所存儲的內容,表示方式為A01、A02、A08、B10、B25、C12等等,一個字典就分配一個字母作為其ID號的標識,其實就是為了調試時方便,在其它的表中判斷該字典的名稱。因此對於一個特定的字典表來說,其ID號排序應該是A01、A02、A03、A04……
在對字典內容進行刪除的時候並不需要考慮什麼,直接使用DELETE語句就可以了。關鍵是添加字典信息時,管理員需要在表單中填寫的是table中的name字段,ID號如何生成就需要自己用代碼來實現(包括ID號的01號空缺,中間有斷開等情況)。下面是我設計的代碼,其中關鍵的地方都有詳細的注釋:
注意:之所以生成A01而不是A1,是因為在SQLServer2000中根據ID號正確排序的需要,如果按照升序排列,A1後面是A10、A11等,而不是A2。另外,在Hibernate中有多種自動生成ID字段的方法,但是這個項目比較小,我沒有使用Hibernate中間件,這裡提供的只是生成字典ID字段的一種簡單思路,只能用於字典項不多於100項的情況,一般的情況可以滿足了,但如果超過100項只需簡單修改一下代碼,不足之處還請大家多指教!