代碼檔來源:資料庫
設定檔說明
同樣可以加上子項名稱以定義多組設定,如:code.database.${sub}.table。
可用的設定值有以下幾項:
- key
- text
- table
- alias
- lang
- category
code.database.key / code.database.text
指定代碼及文字定義存放的欄位。 預設值為 key / text,也就是預期會建立像是 select key, text from xxxx 的 SQL 語句取得代碼表內容。
- 下例展示如何只使用欄位的部分內容做為 KEY 值
- 語法可能與特定資料庫有關,若實作專案可能使用與多種資料庫產品,請自行注意。
- 同理,text 也可以擷取或是合併欄位取值。
# --縣市
code.database.unitcounty.key = substring(siteno,1,5)
code.database.unitcounty.text = unitcode
code.database.table / code.database.alias
「table」 為必要選項,定義將讀取的資料表名稱。
- 如下例就會自 As2applyitem 讀取資料。
- 即 select key, text from As2applyitem。
code.database.As2applyitem.table = As2applyitem
- 下例加入額外條件,且希望取回代碼表有順序性。
- 就必須加上一個 alias 屬性,以定義對應的 category 名稱。
code.database.unitcounty.table = unitmapping_legend where level='2' and sitenow='' order by rank
code.database.unitcounty.alias = unit-county
code.database.lang
當使用多國語系時,以哪一個欄位儲存語系資訊。
當使用 CodeTableComponent 元件,未傳入 Locale 參數、或 Locale 參數為 NULL 時, 加入查詢條件為 (lang_column='' or lang_column is null or lang_column = Locale.getDefault().toString())
否則若指定 Locale ,則加入查詢條件 lang_column = locale.toString()。
code.database.category
上述案例都是一個 table 只存放一組 category。 若指定 「category」,就可以把多組 category 放在同一個 table 中。
- 下例中,所有的 category 項目為:
- select distinct category from CODETABLE
- 個別的 codetable 在查詢時,則是:
- select key, text from CODETABLE where lang=? and category=?
- 此時「alias」設定無作用。
# 「以資料庫為來源」設定,其中 category 欄位分割定義各代碼集。
code.database.table = CODETABLE
code.database.category = category
code.database.key = key
code.database.lang = lang
code.database.text = text
code.database.readonly
唯讀:當設定為 Y 時,就不能使用 CodeTable 管理API 執行變更操作。
但另外開發相關 DB 寫入程式則不受此限制。