Sokongan sumber data berbilang


ActiveRecordPlugin boleh menyokong berbilang sumber data, berbilang dialek, berbilang cache, berbilang tahap transaksi dan ciri lain pada masa yang sama Setiap ActiveRecordPlugin boleh dikonfigurasikan secara berasingan antara satu sama lain. Ringkasnya, JFinal boleh menggunakan berbilang sumber data pada masa yang sama, dan boleh mengkonfigurasi dialek bebas, cache, tahap urus niaga, dll. untuk berbilang sumber data ini.


Apabila menggunakan berbilang sumber data, anda hanya perlu menentukan configName untuk setiap ActiveRecordPlugin Berikut ialah contoh kod:


public void configPlugin)/🜎(Plugin saya). Sumber data
C3p0Plugin dsMysql = baharu C3p0Plugin(…); me.add(dsMysql);
// mysql
ActiveRecrodPluginActive
ActiveRecrodPlugin Aktif, dan nyatakan MyPluginConfigMy. w ActiveRecordPlugin("mysql", dsMysql) ;me.add(arpMysql);arpMysql.setCache(new
EhCache()); C3p0Plugin(…); me.add(dsOracle); // instance oracle ActiveRecrodPlugin, dan tentukan configName sebagai oracle ActiveRecordPlugin arpOracle = new ActiveRecordPlugin("oracle
", dsOracle ; setDialect(
new
OracleDialect()); arpOracle.setTransactionLevel (8); perhatian untuk menentukan configNamenya sebagai mysql dan oracle masing-masing apabila mencipta contoh. arpMysql dan arpOracle masing-masing memetakan berbeza Model dan mengkonfigurasi dialek berbeza.



Untuk penggunaan Model, Model berbeza secara automatik akan mencari contoh ActiveRecrodPlugin dan konfigurasi yang berkaitan untuk operasi pangkalan data. Jika anda ingin Model yang sama ditukar kepada sumber data yang berbeza, penggunaan ini sangat sesuai untuk jadual dalam sumber data yang berbeza yang mempunyai struktur jadual yang sama . jadual, berikut ialah kod sampel:

public void multiDsModel() {
// Sumber data yang dikaitkan apabila arp.addMapping(...) digunakan secara lalai
Blog blog = Blog. me .findById(123);

// Cuma panggil kaedah penggunaan sekali untuk bertukar ke sumber data lain
blog.use("backupDatabase").save();
}
kod dalam contoh, kaedah blog.use("backupDatabase") menukar sumber data kepada backupDatabase dan menyimpan data secara terus.


Nota khas: Anda hanya perlu menggunakan kaedah penggunaan apabila Model yang sama mahu sepadan dengan jadual daripada berbilang sumber data Jika Model yang sama hanya sepadan dengan satu jadual daripada satu sumber data, maka sumber data pensuisan adalah Automatik, tidak perlu menggunakan kaedah penggunaan.


Untuk penggunaan Db + Record, menukar sumber data memerlukan kaedah Db.use(cnfigName) untuk mendapatkan objek operasi pangkalan data, dan kemudian anda boleh melakukan operasi pangkalan data Berikut ialah contoh kod:

// Pertanyaan pengguna data dsMysql dalam sumber
Senarai<Rekod>
pengguna = Db.use("mysql").cari("pilih * daripada pengguna");// Pertanyaan
blog;Rekod<L dalam sumber data dsOracle ;
blogs
= Db.use("oracle").find("select * from blog");
Dua baris kod di atas mendapatkan objek operasi pangkalan data masing-masing untuk mysql dan oracle melalui configName, dan kemudian Anda boleh menggunakan API operasi pangkalan data dengan cara yang sama seperti data tunggal. Ringkasnya, untuk Db + Record, berbilang sumber data hanya memerlukan satu lagi panggilan ke Db.use(configName) daripada sumber data tunggal dan penggunaan API seterusnya adalah sama.


Perhatikan bahawa tika ActiveRecrodPlugin yang pertama dibuat akan menjadi sumber data utama dan configName boleh ditinggalkan. Konfigurasi dalam contoh ActiveRecrodPlugin yang dibuat dahulu akan lalai kepada konfigurasi utama Selain itu, konfigurasi utama juga boleh ditetapkan dengan menetapkan configName kepada pemalar DbKit.MAIN_CONFIG_NAME.