冠军

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

Spring - DbProvider

 
Spring 对 ADO.NET 提供了强大的支持,主要涉及到下面的几个类型。
这次,在引用 Spring.Core 的基础上,还要引用 Spring.Data,这个程序集也位于 Spring.NET-1.3.1\Spring.NET\bin\net\4.0\release  中。

几个常用的类型

IDbProvider

IDbProvider 定义了数据访问提供器的基础,在 Spring 中提供了许多的数据访问 Provider。
通常我们在配置文件中配置当前使用的 Provider。
复制代码
1 <?xml version="1.0" encoding="utf-8" ?>
2  <configuration>
3 <configSections>
4 <sectionGroup name="spring">
5 <section name="context" type="Spring.Context.Support.ContextHandler, Spring.Core"/>
6 <section name="objects" type="Spring.Context.Support.DefaultSectionHandler, Spring.Core" />
7 </sectionGroup>
8 </configSections>
9 <spring>
10 <context>
11 <resource uri="config://spring/objects"/>
12 </context>
13
14 <objects xmlns="http://www.springframework.net"
15 xmlns:db="http://www.springframework.net/database"
16 >
17 <db:provider id="DbProvider"
18 provider="System.Data.SqlClient"
19 connectionString="server=.\sqlexpress;database=douban;integrated security=true;"/>
20
21 <object id="adoTemplate" type="Spring.Data.Core.AdoTemplate, Spring.Data">
22 <property name="DbProvider" ref="DbProvider"/>
23 </object>
24
25 </objects>
26 </spring>
27  </configuration>
复制代码
第 17-19 行就是在配置文件中定义的 Provider。
在程序中我们可以类似于获取普通对象一样来获取这个 Provider.
Spring.Context.IApplicationContext context 
    = Spring.Context.Support.ContextRegistry.GetContext();
 
Spring.Data.Common.IDbProvider provider = context.GetObject("DbProvider")
    as Spring.Data.Common.IDbProvider;

AdoTemplate

AdoTemplate 有两个,一个泛型,定义为:Spring.Data.Generic.AdoTemplate。一个非泛型,定义为:Spring.Data.Core.AdoTemplate。
在程序中,我们可以通过下面的代码来创建 AdoTemplate 对象。
Spring.Context.IApplicationContext context
    = Spring.Context.Support.ContextRegistry.GetContext();
 
Spring.Data.Common.IDbProvider provider = context.GetObject("DbProvider")
    as Spring.Data.Common.IDbProvider;
 
Spring.Data.Core.AdoTemplate ado = new Spring.Data.Core.AdoTemplate(provider);
 当然,在 Spring 中,我们一般通过注入来完成这些工作。配置文件中可以如下配置:
1 <db:provider id="DbProvider"
2 provider="System.Data.SqlClient"
3 connectionString="server=.\sqlexpress;database=douban;integrated security=true;"/>
4
5  <object id="adoTemplate" type="Spring.Data.Core.AdoTemplate, Spring.Data">
6 <property name="DbProvider" ref="DbProvider"/>
7  </object>
现在的 5,6,7 行完成对非泛型 AdoTemplate 的注入。
这样,我们在程序中可以直接取得一个 AdoTemplate 的对象实例了。直接使用以下,是不是比 SQLHelper 好用多了。
Spring.Data.Core.AdoTemplate adoTemplate
    = context.GetObject("adoTemplate") as Spring.Data.Core.AdoTemplate;
 
object result = adoTemplate.ExecuteScalar(
        System.Data.CommandType.Text,
        "select count(*) from tbl_users"
        );
 

posted on   冠军  阅读(4285)  评论(0编辑  收藏  举报

编辑推荐:
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示