[笔记]iBatisNET配置问题

题外话:前段时间,跟随潮流用了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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值