SPL3.0數(shù)據(jù)支持能力
SPL3.0在數(shù)據(jù)連接方面作了很大的改進(jìn),使用多種方式對(duì)多種數(shù)據(jù)庫(kù)進(jìn)行連接訪問(wèn),讓用戶有了更多的選擇,
支持的數(shù)據(jù)庫(kù)有:SQL Server 、Access、Oracle、其他ODBC連接 。
支持的連接方式有:
用System.Data.SqlClient訪問(wèn)SQL Server ;
用System.Data.OleDb訪問(wèn)Access和Oracle;
用System.Data.Odbc訪問(wèn)SQL Server、Oracle等其他ODBC連接;
用ODP.NET連接Oracle數(shù)據(jù)庫(kù);
用戶可以根據(jù)自己的喜好,自由選擇這些連接方式,這使SPL3.0具有較強(qiáng)的數(shù)據(jù)庫(kù)支持能力,下面詳細(xì)介紹一下如何進(jìn)行這些連接。
SPL3.0連接配置方式
SPL3.0在連接配置方式上作了很大的擴(kuò)展,以前的方式是使用Setting.Instance().DatabaseMapFile=”DatabaseMap配置文件”;
這種方式是SPL中推薦的方式,連接配置相當(dāng)簡(jiǎn)單,系統(tǒng)會(huì)自動(dòng)加載數(shù)據(jù)庫(kù)連接與O/R Mapping信息。但這種方式適用于整個(gè)系統(tǒng)都采用SPL框架,如果SPL只是在原老系統(tǒng)插入,那么應(yīng)該采用另一種手動(dòng)配置的方式。
還有在大系統(tǒng)中,我們可能會(huì)遇到多帳套數(shù)據(jù)連接,也就是動(dòng)態(tài)加載數(shù)據(jù)庫(kù)連接的,象這種采用上面的方式都不太合適了。
為此SPL3.0擴(kuò)展了另外一種配置數(shù)據(jù)庫(kù)連接的方式:
Setting.Instance().AppendDatabase(string name,DatabaseType databaseType,string connectionString);
參數(shù):
name:指數(shù)據(jù)源名稱(chēng),這是SPL中提出的一種概念,也就是一個(gè)數(shù)據(jù)源名稱(chēng)決定了一個(gè)數(shù)據(jù)連接,在業(yè)務(wù)中使用此數(shù)據(jù)源名稱(chēng)就可以指定數(shù)據(jù)連接操作了。
databaseType:這是一個(gè)枚舉型的,標(biāo)明使用哪種方式進(jìn)行數(shù)據(jù)訪問(wèn):
DatabaseType.MsSqlServer 這是使用SqlClient訪問(wèn)SQL Server數(shù)據(jù)庫(kù)
DatabaseType.MsAccess 這是使用OleDb訪問(wèn)Access數(shù)據(jù)庫(kù)
DatabaseType.Oracle 這是使用OleDb訪問(wèn)Oracle數(shù)據(jù)庫(kù)
DatabaseType.ODP 這是使用ODP.NET訪問(wèn)Oracle數(shù)據(jù)庫(kù)
DatabaseType.Odbc 這是使用Odbc訪問(wèn)SQL Server、Oracle等ODBC連接
connectionString:這是指連接字符串,根據(jù)不同的連接給出正確的連接字符串即可。
如:Setting.Instance().AppendDatabase("northwind",DatabaseType.Odbc,"Driver={SQL Server};Server=localhost;UID=sa;Pwd=both;Database=Northwind");
這種方式一般是在Setting.Instance().DatabaseMapFile的基礎(chǔ)上添加數(shù)據(jù)庫(kù)追加,因?yàn)檫@種方式?jīng)]有加載O/R Mapping信息,這種方式用于多帳套.
SPL3.0擴(kuò)展了單獨(dú)裝載O/R Mapping的功能:
Setting.Instance().LoadClassMap(Server.MapPath(this.m_ApplicationPath+"Config/ClassMap.xml"));
如果要單獨(dú)使用Append追加數(shù)據(jù)庫(kù)連接則需要在加載數(shù)據(jù)時(shí)也要加載O/R Mapping信息:
Setting.Instance().AppendDatabase(string name,DatabaseType databaseType,string connectionString, string ClassMapPath);
參數(shù):
前面的參數(shù)跟上面的一樣;
ClassMapPath: 這是O/R Mapping文件的地址,是絕對(duì)地址啊,如:
Setting.Instance().AppendDatabase("northwind",DatabaseType.Odbc,"Driver={SQL Server};Server=localhost;UID=sa;Pwd=both;Database=Northwind", Server.MapPath(this.m_ApplicationPath+"Config/ClassMap.xml"));
總結(jié)
SPL3.0支持的數(shù)據(jù)庫(kù)更多了,支持多種連接方式,而且在配置上更加靈活多樣了,可以適應(yīng)各種情況:
1、SPL支持系統(tǒng)全部的建議采用DatabaseMapFile的方式指定裝載的DatabaseMap文件,如果在這基礎(chǔ)上支持多帳套,可以采用AppendDatabase的方式追加,也可以手動(dòng)裝載補(bǔ)充O/R Mapping信息。
2、如果SPL是要集成到原有系統(tǒng)中,為了利用原系統(tǒng)的數(shù)據(jù)連接,可以使用AppendDatabase在配置連接同時(shí)加載O/R Mapping信息。
SPL3.0的數(shù)據(jù)連接比一般的數(shù)據(jù)訪問(wèn)多一個(gè)O/R Mapping信息裝載,這是使用持久層時(shí)必須實(shí)現(xiàn)的。希望SPL3.0的這些數(shù)據(jù)訪問(wèn)功能能為你提供更多的選擇。
出處:聽(tīng)棠.net
責(zé)任編輯:moby
◎進(jìn)入論壇網(wǎng)絡(luò)編程版塊參加討論
|