Oracle 支援
Oracle 資料庫具有一定的特殊性,JFinal 針對這些特殊性進行了一些額外的支援以方便廣 大的 Oracle 使用者。以下是完整的 Oracle 設定範例:
##public class DemoConfig extends JFinalConfig {
另外,Oracle 並未直接支援自增主鍵,JFinal 為此提供了便捷的解決方案。要讓 Oracle 支援自動主鍵主要分為兩個步驟:一是建立序列,二是在 model 中使用這個序列,具體方法如下:1:透過以下辦法建立序列,本例中序列名為:MY_SEQpublic 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 來達到 , 可 了 通 )不再需要了。
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 來達到 , 可 了 通 )不再需要了。
CREATE SEQUENCE MY_SEQ INCREMENT BY 1
MINVALUE 1MAXVALUE 99999999999999991
User user = new User().set("id", "MY_SEQ.nextval ").set("age", 18); user.save();T TH 999999999999999
#T TH 999999999999999
##S TH在 YourModel.set(…)中使用上面建立的序列
// 建立User並使用序列#T TH 999999999999999
##S TH在 YourModel.set(…)中使用上面建立的序列
// 取得id值
Integer id = user.get("id");#序列的使用很簡單,只需要yourModel.set(主鍵名, 序列名稱
+ “.nextval”
特別注意這裡的 「.nextval」 後綴一定要是小寫,OracleDialect 對此值的大小寫敏感。