解决Mybatis引入外部文件导致url出错的问题

解决Mybatis引入外部文件导致url出错的问题

  1. 首先说一下我遇见的问题

     <property name="driver"     value="${driver}"/>
     <property name="url"       value="jdbc:mysql://localhost:3306/mybatisuseUnicode=true&amp;characterEncoding=UTF8&amp;userSSL=false&amp>
           
     <property name="username"   value="${username}"/>
     <property name="password"   value="${password}"/>

在这里,我其它的都换成了 ${} 这种取值方式,但是url没换。 此时呢,我能正常从查询到我的数据

 

但是当我把url也换成 ${} 这种取值方式的时候,出现了bug

 

具体错误翻译过来是:

Cause: java.sql.SQLNonTransientConnectionException: Cannot load connection class because of underlying exception: com.mysql.cj.exceptions.WrongArgumentException: Malformed database URL, failed to parse the connection string near ';characterEncoding=UTF-8&amp;userSSL=false&amp;serverTimezone=GMT%2B8'.
​
原因:java。sql。SQLNonTransientConnectionException:无法加载连接类,因为基础异常:com。mysql。cj。例外情况。ErrorArgumentException:数据库URL格式错误,无法分析“”附近的连接字符串;characterEncoding=UTF-8(&amp;userSSL=错误(&S);服务器时区=GMT%2B8'。
后来就仔细找,原来在 <property name="url"  value= "" 中 &得转义,得写成这样 &amp;

但是在db.properties中呢,就不行,直接写&就行了。

所以我在核心xml文件中用properties标签引入外部资源文件 url识别不了,始写的原因就是我在xml中最开url值是:jdbc:mysql://localhost:3306/mybatisuseUnicode=true&amp;characterEncoding=UTF8&amp;userSSL=false&amp
​
我在db.properties中的url是拷贝的这个,里面的&是应该就直接写&就行的,但我拷贝的是转义后的&amp;  所以我引入资源它报错识别不了我的url   就是&的问题
​
最后就是把db.properties 中url里的&amp;给直接换成了& 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值