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