[笔记]iBatisNET配置问题

作者分享了从使用Linq到Sql转而采用iBatisNET的过程,并记录了配置过程中的一些注意事项,包括动态链接库的引入、providers.config文件的修改、SqlMap配置文件的变化以及数据库连接设置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

题外话:前段时间,跟随潮流用了Linq(Linq to Sql),发现居然是MS Sql Server独占的,我这个气啊。。。。没办法在路上拣了个DBLinq,开始玩玩觉得不错,就加入到项目里用了,没想到这里bug,那里功能还没有提供,只是个空方法。。。。一路走来,全在吐血。。。。

后来公司技术顾问推荐用iBatisNET,不用学Linq语法或者其他什么ORM框架的语法,Sql和代码分离,支持多种数据库。感觉不错,从官方下了最新版的组件(下载),又从博友Anderson Cui那下载他修改后官方例子NPetShop(下载),在学习的过程中发现一些需要注意的问题:

1.如果连接的数据库不是被.NET内置支持的,记得把相应的动态链接库文件(比如:MySql.Data.dll)引入到Web层目录下,另外还要在目录下引入Castle.DynamicProxy.dll,IBatisNet.DataMapper.dll,IBatisNet.DataAccess.dll,IBatisNet.Common.dll。

2.Web层目录下的providers.config里记录了支持的数据库,及链接对应数据库需要的动态链接库文件,官方提供的配置有些使用动态链接库文件版本很老,你需要手动去修改,例:

修改前:

<provider
      name="MySql"
      description="MySQL, MySQL provider 1.0.7.30072"
      enabled="false"
      assemblyName="MySql.Data, Version=1.0.7.30072, Culture=neutral, PublicKeyToken=c5687fc88969c44d" connectionClass="MySql.Data.MySqlClient.MySqlConnection"
      commandClass="MySql.Data.MySqlClient.MySqlCommand"
      parameterClass="MySql.Data.MySqlClient.MySqlParameter"
      parameterDbTypeClass="MySql.Data.MySqlClient.MySqlDbType"
      parameterDbTypeProperty="MySqlDbType"
      dataAdapterClass="MySql.Data.MySqlClient.MySqlDataAdapter"
      commandBuilderClass="MySql.Data.MySqlClient.MySqlCommandBuilder"
      usePositionalParameters="false"
      useParameterPrefixInSql="true"
      useParameterPrefixInParameter="true"
      parameterPrefix="?"
      allowMARS="false"   
  />

修改后(加亮这个一定要注意,如果为false,是不能连接数据库成功的):

<provider
      name="MySql"
      description="MySQL, MySQL provider V5.2.2.0"
      enabled="true"
      assemblyName="MySql.Data, Version=5.2.2.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" connectionClass="MySql.Data.MySqlClient.MySqlConnection"
      commandClass="MySql.Data.MySqlClient.MySqlCommand"
      parameterClass="MySql.Data.MySqlClient.MySqlParameter"
      parameterDbTypeClass="MySql.Data.MySqlClient.MySqlDbType"
      parameterDbTypeProperty="MySqlDbType"
      dataAdapterClass="MySql.Data.MySqlClient.MySqlDataAdapter"
      commandBuilderClass="MySql.Data.MySqlClient.MySqlCommandBuilder"
      usePositionalParameters="false"
      useParameterPrefixInSql="true"
      useParameterPrefixInParameter="true"
      parameterPrefix="?"
      allowMARS="false"   
  />

3.新版的SqlMap配置文件,也做了细微的调整,如果属性书写不正确,可能导致一些问题:

例:DataAccess.dll为1.9.2,DataMapper.dll为1.6.2,其dao的配置文件的开头部分是这样的:

<daoConfig xmlns="http://ibatis.apache.org/dataAccess" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

<context><daoSessionHandler>的name属性不再使用,改为使用id。

SqlMap配置文件也有变化:
<sqlMapConfig xmlns="http://ibatis.apache.org/dataMapper" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" >

4.数据库连接

以往这部分是SqlMap.config文件里的,iBatisNET升级后,这部分被移到dao.config内,详见NPetShop示例程序

 

这个算是初步体验。以后有心得再续上。

转载于:https://www.cnblogs.com/TomToDo/archive/2008/11/12/1332250.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值