Spring对ADO.NET也提供了支持,依赖与程序集Spring.Data.dll
IDbProvider
IDbProvider定义了数据访问提供器的基础,配置如下
<?xml version="1.0" encoding="utf-8" ?> <configuration> <configSections> <sectionGroup name="spring"> <section name="context" type="Spring.Context.Support.ContextHandler,Spring.Core"/> <section name="objects" type="Spring.Context.Support.DefaultSectionHandler,Spring.Core"/> </sectionGroup> </configSections> <spring> <context> <resource uri="config://spring/objects"></resource> </context> <objects xmlns="http://www.springframework.net" xmlns:db="http://www.springframework.net/database"> <db:provider id="DbProvider" provider="System.Data.SqlClient" connectionString="server=.;database=KMS;uid=sa;pwd=123456"/> <object id="adoTemplate" type="Spring.Data.Core.AdoTemplate,Spring.Data"> <property name="DbProvider" ref="DbProvider"></property> </object> </objects> </spring> <startup> <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" /> </startup> </configuration>
获取数据IDbProvider的方法
Spring.Context.IApplicationContext context = Spring.Context.Support.ContextRegistry.GetContext(); Spring.Data.Common.IDbProvider provider = context.GetObject("DbProvider") as IDbProvider;
AdoTemplate
AdoTemplate有两个,
一个泛型,定义为:Spring.Data.Generic.AdoTemplate
一个非泛型,定义为:Spring.Data.Core.AdoTemplate
使用如下
Spring.Context.IApplicationContext context = Spring.Context.Support.ContextRegistry.GetContext(); Spring.Data.Common.IDbProvider provider = context.GetObject("DbProvider") as IDbProvider; Spring.Data.Core.AdoTemplate ado = new Spring.Data.Core.AdoTemplate(provider); Spring.Data.Generic.AdoTemplate ado2 =new AdoTemplate(provider); //Console.WriteLine(person);
配置文件中已经将adoTemplate注入,那么直接使用如下
Spring.Data.Core.AdoTemplate adoTemplate = context.GetObject("adoTemplate") as Spring.Data.Core.AdoTemplate; string result = adoTemplate.ExecuteScalar(CommandType.Text, "select NickName from Blog_User").ToString(); Console.WriteLine(result);