关于iBatis.NET连接各数据库时提示没找到数据库驱动的依赖文件
iBatis.net在连接oracle数据库时使用的是:oracleClient1.0 这个是系统自带的驱动,配置上即可,使用的连接配置为:
<database> <provider name="oracleClient1.0"/> <dataSource name="IBatis" connectionString="Data Source=(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = 10.195.236.6)(PORT = 1521)))(CONNECT_DATA =(SID = exoa)(SERVER = DEDICATED)));User Id=exoa;Password=password;"/> </database>
后来改为使用mysql数据库做测试,查看了ibatis数据库驱动配置文件(Providers.config)原来使用的是1.6*的版本,已经很旧了,随便找了个mysql.data.dll文件引入到工程后,提示“Message=未能加载文件或程序集“MySql.Data, Version=1.6.****,”的字眼,也就是说,引入的新版的dll和iBatis中配置的驱动不一致引起的,配置里面说是引入了1.6版本的,现在找的dll看了下版本,应该是:6.2.3.0。 我们如何去修改iBatis的驱动配置文件呢,我们可以通过ILSPY软件进行对dll反编译,第一页就是这个dll的相关信息,如下:
// D:\********\Lib\DB_Lib\mysql\MySql.Data.dll // MySql.Data, Version=6.2.3.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d // Architecture: AnyCPU (64-bit preferred) // Runtime: .NET 2.0
把这个信息更新到Providers.config对应的mysql驱动位置即可,如下:
<provider name="MySql" description="MySQL, MySQL provider 6.2.3.0" enabled="true" assemblyName="MySql.Data, Version=6.2.3.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" />
注意,这里的Name可以随便起的, 但你使用的时候,需要哪个驱动,配置iBatis的dataBase的时候,provider name 就是填该Name的值。description这里指描述,也应该是可以随便写的,关键的是enabled如果为true,则iBatis加载的时候,就会去加载相应的驱动文件,它就会去 引入assemblyName的信息去加载,如果加载不了就会报错,因此,如果实际上没使用该驱动的时候,你又去启用它,运行时报错,你就会觉得莫名其妙,没使用该数据库,为何提示“未能加载文件或程序集”的错误,因此,你需要检查该Providers.config是否正常启用和停止使用某个数据库驱动。好了,这里mySql引入了新的驱动,需要修改assemblyName中Version和PublicKeyToken为反编译结果中的对应的值即可。下面贴出mysql配置的信息:
<database> <provider name="MySql"/> <dataSource name="IBatis" connectionString="Server=localhost;Database=com_tool; User=root;Password=rootroot;"/> </database>
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架
2009-01-05 Ear、Jar、War文件之间有何不同?它们分别使用在哪种环境下?