オラクルのサポート
Oracle データベースには特定の特性があります。JFinal は、大多数の Oracle ユーザーが使いやすいように、これらの特性に対する追加のサポートを提供しています。以下は完全な Oracle 構成例です。
public class DemoConfig extends JFinalConfig {
public void configPlugin(Plugins me) { C3p0Plugin cp = new 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()); arp.addMapping("user", "user_id", User.class);
}
public void configPlugin(Plugins me) { C3p0Plugin cp = new 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()); arp.addMapping("user", "user_id", User.class);
}
Oracle によるデータベースは属性名 (フィールド名) を自動的に大文字に変換するため、arp.addMaping("user", "ID", User.class) のように主キー名を大文字で手動で指定する必要があります。 ActiveRecord で属性名 (フィールド名) の大文字と小文字を区別しないようにしたい場合は、CaseInsensitiveContainerFactory を設定することで実現できます。この設定では、arp.addMaping("user", "ID", User.class ) が必要なくなります。
さらに、Oracle は自動インクリメント主キーを直接サポートしていませんが、JFinal はこれに対する便利なソリューションを提供します。 Oracle が自動主キーをサポートするには、主に 2 つの手順があります。1 つはシーケンスを作成することで、もう 1 つはこのシーケンスをモデルで使用することです。具体的な方法は次のとおりです。
1: 次の方法でシーケンスを作成します。この例では、シーケンス名は次のとおりです: MY_SEQ
CREATE SEQUENCE MY_SEQ INCREMENT BY 1
MINVALUE 1
MAXVALUE 9999999999999999
START WITH 1
CACHE 20;
MINVALUE 1
MAXVALUE 9999999999999999
START WITH 1
CACHE 20;
2: YourModel で上記で作成したシーケンスを使用します。 .set(… )
//ユーザーを作成してシーケンスを使用します
ユーザー user = new User().set("id", "MY_SEQ.nextval").set("age", 18); / ID 値を取得します
Integer id = user.get( "id");
ユーザー user = new User().set("id", "MY_SEQ.nextval").set("age", 18); / ID 値を取得します
Integer id = user.get( "id");
+ “.nextval”) だけです。 )。 特別ここでの「.nextval」接尾辞は小文字である必要があり、OracleDialect はこの値の大文字と小文字を区別することに注意してください。