ActiveRecord 之多資料庫配置

2022-03-29 05:24:29 字數 1653 閱讀 8818

activerecord 的多資料庫配置基本沿襲了 nhibernate 的思想,只不過在配置檔案結構上作了些調整。

1. 採用繼承方式,歸納使用同一資料庫的型別。比如 a、b、c、d、e 中 a、b連線到資料庫test1,c、d連線到test2,而e連線到預設的test,那麼具體的**就會是下面這種方式。

public abstract class test1base : activerecordbase

public abstract class test2base : activerecordbase

[activerecord("a")]

public class a : test1base

[activerecord("b")]

public class b : test1base

[activerecord("c")]

public class c : test2base

[activerecord("d")]

public class d : test2base

[activerecord("e")]

public class e : activerecordbase

config.xml

<?xml version="1.0" encoding="utf-8" ?>

我們會發現,activerecord 通過使用公用基類的方式來實現多個資料庫連線配置的。只要繼承自指定的基類,我們就可以使用不同的目標資料庫。在配置檔案中我們通過增加多個 config section,同時指定 config type 屬性,就可以讓 activerecord 使用多資料庫配置。config type 就是我們編寫的基類,所有繼承自該基類的型別都會使用該連線配置,而那些直接繼承自 activerecordbase 的型別還是使用預設的連線配置。

上面的例子使用了 sql server 2000 的不同資料庫,同樣我們也可以連線到不同的資料庫系統,如 a、b 連線到 sql server,c、d 連線到 db2 等等。

2. 基類需要遵循一定的規則。

(1) 必須繼承自 activerecordbase。

(2) 必須是抽象類。

(3) 可以不新增 [activerecord()] 特性。

(4) 必須初始化抽象基類。如 "activerecordstarter.initialize(source, typeof(test1base ));" ,如果使用 "activerecordstarter.initialize(assembly.getexecutingassembly(), source);" 那麼就給抽象基類新增 "[activerecord()]" 即可。

下面是乙個相對完整的**演示。

}[activerecord("users")]

public class user : base

set

}private string name;

[property(unique=true)]

public string name

set }}

public class activerecordtest

public static void test()}}

activerecord.xml

<?xml version="1.0" encoding="utf-8" ?>

ActiveRecord 之 多資料庫配置

activerecord 的多資料庫配置基本沿襲了 nhibernate 的思想,只不過在配置檔案結構上作了些調整。1.採用繼承方式,歸納使用同一資料庫的型別。比如 a b c d e 中 a b連線到資料庫test1,c d連線到test2,而e連線到預設的test,那麼具體的 就會是下面這種方式...

SpringMVC Mybatis之多資料來源搭建

notice 歡迎交流和溝通,wx it ezra,qq 654303408。僅個人觀點和個人理解有問題討論也可聯絡我。ps 寫這篇部落格的原因是因為剛入行不久,第一次把自己的自己所學的東西應用在實際層面,更讓我意識到,基礎的重要性。首先我們要配置mybatis的xml配置檔案,當然有不規範的寫法,...

Spring Mybatis之多資料來源配置

1,配置多個資料來源 採用連線池c3p0,直接jdbc連也行 資料來源1 datasource1 資料來源2 datasource2 2,配置mybatis資料會話管理 sqlsessionfactorybean 會話factory1 sqlsessionfactorybean1 sqlsessio...