Oracle 支援


Oracle 資料庫具有一定的特殊性,JFinal 針對這些特殊性進行了一些額外的支援以方便廣 大的 Oracle 使用者。以下是完整的 Oracle 設定範例:

##public class DemoConfig extends JFinalConfig {
public void configPlugin(Plugins me) { C3p0Plugin configPlugin(Plugins me) { C3p0Plugin 設定Oracle驅動
cp. setDriverClass("oracle.jdbc.driver.OracleDriver"); me.add(cp);
ActiveRecordPlugin arp = new ActiveRecordPlugin(cp); me.add(arp); // 配置Oracle方言
arp.setDialect(new OracleDialect());
//  配置屬性名(字段名)大小寫不敏感容器工廠 arp.setContainerFactory(new CaseInsensitiveContainerFactory()); "user", "user_id", User.class);
}


#由於 Oracle 資料庫會自動將屬性名(字段名)轉換成大寫,所以需要手動指定主鍵名為大寫, 如:arp.addMaping(“user”, “ID”, User.class)。如果想讓ActiveRecord 對屬性名(字段名)的大小 寫 不 敏 感 可 以 通 過 設 置CaseInsensitiveContainerFactory 來達到 , 可 了 通  )不再需要了。
另外,Oracle 並未直接支援自增主鍵,JFinal 為​​此提供了便捷的解決方案。要讓 Oracle 支援自動主鍵主要分為兩個步驟:一是建立序列,二是在 model 中使用這個序列,具體方法如下:

1:透過以下辦法建立序列,本例中序列名為:MY_SEQ

CREATE SEQUENCE MY_SEQ INCREMENT BY 1

MINVALUE 1
MAXVALUE 99999999999999991
T TH 999999999999999
#T TH 999999999999999
##S TH在 YourModel.set(…)中使用上面建立的序列

// 建立User並使用序列
User user = new User().set("id", "MY_SEQ.nextval ").set("age", 18); user.save();

// 取得id值

Integer id = user.get("id");

#序列的使用很簡單,只需要yourModel.set(主鍵名,  序列名稱

+ “.nextval”
)就可以了。

特別注意這裡的  「.nextval」  後綴一定要是小寫,OracleDialect 對此值的大小寫敏感。