zoukankan      html  css  js  c++  java
  • 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"
            );
    
     
  • 相关阅读:
    Java 5,6,7,8,9,10,11新特性
    LINUX中如何查看某个端口是否被占用
    Springboot项目全局异常统一处理
    面试笔记
    springboot几篇文章
    Mysql索引会失效的几种情况分析
    数组变成集合的方法
    集合变成数组的方法 Collections里面的方法
    list类里面的东西加锁 (手动加锁方法)
    Collections里面的一些方法
  • 原文地址:https://www.cnblogs.com/haogj/p/2079928.html
Copyright © 2011-2022 走看看