JFinal项目中,如何连接两个不同版本的mysql数据库?
一、说明
产生此笔记的原因,在于今天对某个 JFinal 项目进行数据库的升级,结果导致了如下问题:
(注:下图为从网上所找,因问题处理后,不想再返回去截图了)
二、处理过程:
1、原系统中的数据库连接说明:
数据库一版本:mysql 5.5.62
数据库二版本:mysql 5.5以后(第三方应用的,不能做版本变更处理)
数据库连接的jar包:mysql-connector-java-5.1.20-bin.jar
连接池jar包:druid-1.0.5.jar
由于两个数据库的大版本一致,因此驱动使用同一个。但在其中一个数据库升级后,导致两个数据库的驱动版本不一致。
2、升级后的信息
数据库一版本:mysql 8.0.19
数据库二版本:mysql 5.5以后(第三方应用的,不能做版本变更处理)
数据库连接的jar包:mysql-connector-java-8.0.19.jar
连接池jar包:druid-1.1.16.jar
修改有关连接串后,数据库一可以正常连接;但数据库二无法连接,因为旧版本的数据库不支持cache_sha_password的账号密码加密方式,从而导致了上述错误。
3、解决办法
数据库的版本当然不能变了。仍然保持一个8.0.19版本,另一个为5.5版本。
数据库连接的jar包,使用两个:mysql-connector-java-8.0.19.jar 和 数据库连接的jar包:mysql-connector-java-5.1.20-bin.jar
连接池jar包:druid-1.1.16.jar
关键:增加driverClass设置
连接8.0.19的数据库时,
driverClassName1=com.mysql.cj.jdbc.Driver
连接5.5的数据库时,
driverClassName2=com.mysql.jdbc.Driver
这样数据库连接时,会去找相应的驱动jar包,就可以了。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构