オラクルのサポート


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);
}

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;

2: YourModel で上記で作成したシーケンスを使用します。 .set(… )

//ユーザーを作成してシーケンスを使用します
ユーザー user = new User().set("id", "MY_SEQ.nextval").set("age", 18); / ID 値を取得します
Integer id = user.get( "id");
シーケンスの使用方法は非常に簡単で、yourModel.set(主キー名, シーケンス名

+ “.nextval”) だけです。 )。 特別ここでの「.nextval」接尾辞は小文字である必要があり、OracleDialect はこの値の大文字と小文字を区別することに注意してください。