日期:2012-08-08  浏览次数:20968 次

SPL3.0数据连接详解

SPL3.0数据支持能力

SPL3.0在数据连接方面作了很大的改进,使用多种方式对多种数据库进行连接访问,让用户有了更多的选择,

支持的数据库有:SQL Server 、Access、Oracle、其他ODBC连接

支持的连接方式有:

用System.Data.SqlClient访问SQL Server

用System.Data.OleDb访问Access和Oracle

用System.Data.Odbc访问SQL Server、Oracle等其他ODBC连接

用ODP.NET连接Oracle数据库

用户可以根据自己的喜好,自由选择这些连接方式,这使SPL3.0具有较强的数据库支持能力,下面详细介绍一下如何进行这些连接。



SPL3.0连接配置方式

SPL3.0在连接配置方式上作了很大的扩展,以前的方式是使用Setting.Instance().DatabaseMapFile=”DatabaseMap配置文件”;

这种方式是SPL中推荐的方式,连接配置相当简单,系统会自动加载数据库连接与O/R Mapping信息。但这种方式适用于整个系统都采用SPL框架,如果SPL只是在原老系统插入,那么应该采用另一种手动配置的方式。

还有在大系统中,我们可能会遇到多帐套数据连接,也就是动态加载数据库连接的,象这种采用上面的方式都不太合适了。

为此SPL3.0扩展了另外一种配置数据库连接的方式:

Setting.Instance().AppendDatabase(string name,DatabaseType databaseType,string connectionString);

参数:

name:指数据源名称,这是SPL中提出的一种概念,也就是一个数据源名称决定了一个数据连接,在业务中使用此数据源名称就可以指定数据连接操作了。



databaseType:这是一个枚举型的,标明使用哪种方式进行数据访问:

DatabaseType.MsSqlServer 这是使用SqlClient访问SQL Server数据库

DatabaseType.MsAccess 这是使用OleDb访问Access数据库

DatabaseType.Oracle 这是使用OleDb访问Oracle数据库

DatabaseType.ODP 这是使用ODP.NET访问Oracle数据库

DatabaseType.Odbc 这是使用Odbc访问SQL Server、Oracle等ODBC连接



connectionString:这是指连接字符串,根据不同的连接给出正确的连接字符串即可。

如:Setting.Instance().AppendDatabase("northwind",DatabaseType.Odbc,"Driver={SQL Server};Server=localhost;UID=sa;Pwd=both;Database=Northwind");



这种方式一般是在Setting.Instance().DatabaseMapFile的基础上添加数据库追加,因为这种方式没有加载O/R Mapping信息,这种方式用于多帐套.

SPL3.0扩展了单独装载O/R Mapping的功能:

Setting.Instance().LoadClassMap(Server.MapPath(this.m_ApplicationPath+"Config/ClassMap.xml"));

如果要单独使用Append追加数据库连接则需要在加载数据时也要加载O/R Mapping信息:

Setting.Instance().AppendDatabase(string name,DatabaseType databaseType,string connectionString,string ClassMapPath);

参数:

前面的参数跟上面的一样;

ClassMapPath: 这是O/R Mapping文件的地址,是绝对地址啊,如:

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



总结

SPL3.0支持的数据库更多了,支持多种连接方式,而且在配置上更加灵活多样了,可以适应各种情况:

1.SPL支持系统全部的建议采用DatabaseMapFile的方式指定装载的DatabaseMap文件,如果在这基础上支持多帐套,可以采用AppendDatabase的方式追加,也可以手动装载补充O/R Mapping信息。

2.如果SPL是要集成到原有系统中,为了利用原系统的数据连接,可以使用AppendDatabase在配置连接同时加载O/R Mapping信息。

SPL3.0的数据连接比一般的数据访问多一个O/R Mapping信息装载,这是使用持久层时必须实现的。希望SPL3.0的这些数据访问功能能为你提供更多的选择。