重庆分公司,新征程启航

为企业提供网站建设、域名注册、服务器等服务

怎么解析iBATIS.NET多数据库支持

这篇文章给大家介绍怎么解析iBATIS.NET多数据库支持,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

创新互联建站是一家专注网站建设、网络营销策划、成都微信小程序、电子商务建设、网络推广、移动互联开发、研究、服务为一体的技术型公司。公司成立十余年以来,已经为上千发电机租赁各业的企业公司提供互联网服务。现在,服务的上千客户与我们一路同行,见证我们的成长;未来,我们一起分享成功的喜悦。

谈到iBATIS.NET多数据库支持我们首先来看看它本身的帮助文档,在iBATIS.NET的帮助文档中有介绍多数据库支持,但是没有写全代码,后来查看其源码,并结合帮助文档,找到了解决方法,其实道理就是另行实现一个Mapper.

iBATIS.NET多数据库支持实例如AnthorMapper:

Apache Notice#region Apache Notice       #endregion           using IBatisNet.Common.Utilities;      using IBatisNet.DataMapper;      using IBatisNet.DataMapper.Configuration;           namespace IBatisNet.DataMapper      {          /**//// ﹤summary﹥         /// A singleton class to access the default SqlMapper defined by the SqlMap.Config          /// ﹤/summary﹥         public sealed class AnthorMapper          {             Fields#region Fields              private static volatile ISqlMapper _mapper = null;             #endregion                   /**//// ﹤summary﹥             ///               /// ﹤/summary﹥             /// ﹤param name="obj">﹤/param﹥             public static void Configure (object obj)              {                  _mapper = null;              }                   /**//// ﹤summary﹥             /// Init the 'default' SqlMapper defined by the SqlMap.Config file.              /// ﹤/summary﹥             public static void InitMapper()              {                  ConfigureHandler handler = new ConfigureHandler (Configure);                  DomSqlMapBuilder builder = new DomSqlMapBuilder();                  _mapper = builder.ConfigureAndWatch ("AnthorMap.config",handler);      }                   /**//// ﹤summary﹥             /// Get the instance of the SqlMapper defined by the SqlMap.Config file.              /// ﹤/summary﹥             /// ﹤returns>A SqlMapper initalized via the SqlMap.Config file.﹤/returns﹥             public static ISqlMapper Instance()              {                  if (_mapper == null)                  {                      lock (typeof (SqlMapper))                      {                          if (_mapper == null) // double-check                          {                                 InitMapper();                          }                      }                  }                  return _mapper;              }                            /**//// ﹤summary﹥             /// Get the instance of the SqlMapper defined by the SqlMap.Config file. (Convenience form of Instance method.)              /// ﹤/summary﹥             /// ﹤returns>A SqlMapper initalized via the SqlMap.Config file.﹤/returns﹥             public static ISqlMapper Get()              {                  return Instance();              }      }  }

以上代码只是修改了iBATIS.NET中的Mapper的代码,将_mapper = builder.ConfigureAndWatch (handler);修改为_mapper = builder.ConfigureAndWatch ("AnthorMap.config",handler),就是根据另一个AnthorMap.config文件来生成SqlMapper。

AnthorMap.config和默认的SqlMap.config一样,只是根据你的数据不同设置不同而已,测试AnthorMap.config如下如下:

﹤?xml version="1.0" encoding="utf-8"?﹥    ﹤sqlMapConfig         xmlns="http://ibatis.apache.org/dataMapper"         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"﹥           ﹤settings﹥            ﹤setting useStatementNamespaces="true"/﹥        ﹤/settings﹥           ﹤providers resource="ServerConfig/providers.config"/﹥           ﹤!-- Database connection information --﹥      ﹤database﹥        ﹤provider name="sqlServer2.0"/﹥        ﹤dataSource name="CrmSystem" connectionString="server=.;database=TestDB;uid=sa;pwd="/﹥      ﹤/database﹥             ﹤sqlMaps﹥        ﹤sqlMap embedded="Test.Domain.Weather.xml,Test.Domain" /﹥                     ﹤/sqlMaps﹥              ﹤/sqlMapConfig﹥

iBATIS.NET多数据库支持之使用AntherMapper来创建ISqlMapper了。如下:

public IList﹤Weather﹥GetWeather()      {           ISqlMapper map = AnthorMapper.Instance();                return map.QueryForList﹤Weather>("Weather.Select", null);      }

那么iBATIS.NET多数据库支持就介绍到这里。

关于怎么解析iBATIS.NET多数据库支持就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。


文章名称:怎么解析iBATIS.NET多数据库支持
当前地址:http://cqcxhl.com/article/gjdsee.html

其他资讯

在线咨询
服务热线
服务热线:028-86922220
TOP