拥有一个现有的 C# .NET 代码库,该代码库当前编码为直接访问 Oracle 的 ODP.NET API 以进行数据库访问。我们有兴趣在应用程序的这个区域进行一些重构。
我们公司有另一个基于Java的代码库,其中myBATIS用于访问Oracle db。我们真的很喜欢那里的 myBATIS - 所以正在考虑将 myBATIS 用于 C# .NET 应用程序。
然而这里是“但是”:但是在查看 myBATIS for .NET 上的信息时,它似乎分层到 ADO.NET 上。
在处理 Oracle 数据库时,真的很想让 myBATIS 直接转到 ODP.NET。 (而且我们希望有使用非常特定版本的 ODP.NET 的自由度。)
这是否已经可行,或者我们是否需要卷起袖子编写我们自己的 myBATIS 分支,直接在 ODP.NET(而不是 ADO.NET)上分层?
我(还)不是 myBATIS 讨论组的成员,所以我先在这里提问。
请您参考如下方法:
providers
section of your sqlMapConfig
应该指向 providers.config
使用类似于以下内容的提供商提交文件:
<provider
name="oracle10.1"
description="Oracle, oracle provider V10.1.0.301"
enabled="true"
assemblyName="Oracle.DataAccess, Version=10.1.0.301, 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"
allowMARS="false"
/>