ibatisnet oracle,iBatisNet的providers.config的几点实践

最近在做升级老系统的.Net Framework 版本上,遇到iBatis Net组件,发现本身提供的Oracle的Provider只有oracle9.2和oracle10.1

由于现有的Oracle Client已经到11i了 (new Version:2.112.1.0),想尝试增加Oracle11i配置

于是在Providers.config增加了

name="oracle11i"

description="Oracle, oracle provider V2.112.1.0"

enabled="true"

assemblyName="Oracle.DataAccess, Version=2.112.1.0, Culture=neutral, PublicKeyToken=89b483f429c47342" connectionClass="Oracle.DataAccess.Client.OracleConnection"

commandClass="Oracle.DataAccess.Client.OracleCommand"

parameterClass="Oracle.DataAccess.Client.OracleParameter"

parameterDbTypeClass="Oracle.DataAccess.Client.OracleDbType"

parameterDbTypeProperty="OracleDbType"

dataAdapterClass="Oracle.DataAccess.Client.OracleDataAdapter"

commandBuilderClass="Oracle.DataAccess.Client.OracleCommandBuilder"

usePositionalParameters="true"

useParameterPrefixInSql="true"

useParameterPrefixInParameter="true"

parameterPrefix=":"

useDeriveParameters="false"/>

同时移除掉Web.config中的

publicKeyToken="89b483f429c47342"

culture="neutral" />

并将SqlMap.config的database provider 的name改为Oracle 11i

打开系统页面时报错

IBatisNet.Common.Exceptions.ConfigurationException: - The error occurred while loading Providers. - initialize provider - Check the oracle9.2. ---> IBatisNet.Common.Exceptions.ConfigurationException: Could not configure providers. Unable to load provider named "oracle9.2" not found, failed

当时就有点灰心,难道ibatisNet不允许增加新的provider吗,不太符合config的理念

于是就将Oracle 9.2的provider的enable设为false,不然iBatis加载所有Enable =true的Provider

name="oracle9.2"

description="Oracle, Oracle provider V9.2.0.401"

enabled="false"

assemblyName="Oracle.DataAccess, Version=9.2.0.401, Culture=neutral, PublicKeyToken=89b483f429c47342" connectionClass="Oracle.DataAccess.Client.OracleConnection"

commandClass="Oracle.DataAccess.Client.OracleCommand"

parameterClass="Oracle.DataAccess.Client.OracleParameter"

parameterDbTypeClass="Oracle.DataAccess.Client.OracleDbType"

parameterDbTypeProperty="OracleDbType"

dataAdapterClass="Oracle.DataAccess.Client.OracleDataAdapter"

commandBuilderClass="Oracle.DataAccess.Client.OracleCommandBuilder"

usePositionalParameters="false"

useParameterPrefixInSql="true"

useParameterPrefixInParameter="false"

parameterPrefix=":"

useDeriveParameters="false"/>

这样系统就可以正常使用了

之前还错误的判读是不能修改或移除相应的provider,其实只需要设定Enable=false即可

通过这次经历,对ibatis.net的机制有更深入的了解



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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值