前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >iBatis.Net(3):创建SqlMapper实例

iBatis.Net(3):创建SqlMapper实例

作者头像
小白哥哥
发布2018-03-07 14:22:41
1.2K0
发布2018-03-07 14:22:41
举报
文章被收录于专栏:技术小讲堂

在iBatis中,我们把所有的配置和映射都放在XML文件里(当然,这未必是一定需要的),但是,XML文件不是可执行的,所以,如果我们要在我们的c#代码里使用iBatis的映射,就必须通过一个类来加载、分析、使用它。所以在iBatis中,提供给了我们很多的API来做这些事情,配置以及映射文件的加载和监视是在创建SqlMapper实例的时候进行的,而所有的数据映射的工作以及我们对数据库的操作,是需要在SqlMapper实例上调用方法来完成的,SqlMapper实例具有多线程并且长期活动的性质,在iBatis外界,可以随处使用这样的方法来调用得到SqlMapper实例

代码语言:javascript
复制
ISqlMapper mapper=Mapper.Instance();

在我们第一次调用Mapper.Instance()的时候,DomSqlMapBuilder对象会通过解析SqlMap.config(默认路径和命名)文件来出创建SqlMapper实例,在 以后的调用中,则会使用缓存中的mapper对象,那么,如果我们在应用程序运行期间,修改了我们的映射文档,结果是怎样的呢。如果我们使用Mapper.Instance()的方法来得到mapper对象,则在这个过程中,默认使用了DomSqlMapBuilder.ConfigureAndWatch的方法来监视配置文件的状况,如果期间出现了改动,SqlMapper对象会被安全的重新载入,当然,如果你不喜欢iBatis替你做这件事情,则可以通过

代码语言:javascript
复制
ISqlMapper mapper=builder.Configure()

来获取sqlMapper实例

SqlMapper.Config文档的加载

iBatis提供了多种方法对SqlMapper.Config文档的内容进行加载,前面我们讲过默认情况下SqlMapper.Config的存放位置,那么如果我们不是放在了默认位置或者不是默认的文件名该怎么办呢

在默认情况下,我们可以使用这样的方法得到SqlMapper实例

代码语言:javascript
复制
ISqlMapper mapper=builder.Configure()

其实这个Configure可以接受一个参数,他可以是String类型,FilePath对象,Uri对象XmlDocument对象,甚至是Stream类型

比如

代码语言:javascript
复制
String str=”file:\\c:\another.config”;
代码语言:javascript
复制
builder.Configure(str);

同样,如果在使用ConfigureAndWatch方法加载并监视映射文档的情况下,这个方法需要一个ConfigureHandler作为回调委托的参数

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2011-11-23 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档