W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
Oracle 數(shù)據(jù)庫(kù)具有一定的特殊性,JFinal 針對(duì)這些特殊性進(jìn)行了一些額外的支持以方便廣 大的 Oracle 使用者。以下是一個(gè)完整的 Oracle 配置示例:
public class DemoConfig extends JFinalConfig {
public void configPlugin(Plugins me) { C3p0Plugin cp = new C3p0Plugin(……);
//配置Oracle驅(qū)動(dòng)
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()); arp.addMapping("user", "user_id", User.class);
}
由于 Oracle 數(shù)據(jù)庫(kù)會(huì)自動(dòng)將屬性名(字段名)轉(zhuǎn)換成大寫,所以需要手動(dòng)指定主鍵名為大寫, 如:arp.addMaping(“user”, “ID”, User.class)。如果想讓 ActiveRecord 對(duì)屬性名(字段名)的大 小 寫 不 敏 感 可 以 通 過 設(shè) 置 CaseInsensitiveContainerFactory 來達(dá)到 , 有 了 這 個(gè) 設(shè) 置 , 則 arp.addMaping(“user”, “ID”, User.class)不再需要了。
另外,Oracle 并未直接支持自增主鍵,JFinal 為此提供了便捷的解決方案。要讓 Oracle 支 持自動(dòng)主鍵主要分為兩步:一是創(chuàng)建序列,二是在 model 中使用這個(gè)序列,具體辦法如下:
1:通過如下辦法創(chuàng)建序列,本例中序列名為:MY_SEQ
CREATE SEQUENCE MY_SEQ INCREMENT BY 1
MINVALUE 1
MAXVALUE 9999999999999999
START WITH 1
CACHE 20;
2:在 YourModel.set(…)中使用上面創(chuàng)建的序列
// 創(chuàng)建User并使用序列
User user = new User().set("id", "MY_SEQ.nextval").set("age", 18); user.save();
// 獲取id值
Integer id = user.get("id");
序列的使用很簡(jiǎn)單,只需要 yourModel.set(主鍵名, 序列名 + “.nextval”)就可以了。特別注意這里的 “.nextval” 后綴一定要是小寫,OracleDialect 對(duì)該值的大小寫敏感。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: