听棠.NET

用积极乐观的心态,面对压力
posts - 307, comments - 10812, trackbacks - 112, articles - 5
  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理

公告

SPL3.0数据连接详解

Posted on 2005-01-16 20:26 听棠.NET 阅读(...) 评论(...) 编辑 收藏
 

SPL3.0数据连接详解

SPL3.0数据支持能力

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

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

支持的连接方式有:

              System.Data.SqlClient访问SQL Server

              System.Data.OleDb访问AccessOracle

              System.Data.Odbc访问SQL ServerOracle等其他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 ServerOracleODBC连接

 

       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的这些数据访问功能能为你提供更多的选择。

 

 

                                                                听棠

                                                                         2005-1-16