当前位置:   article > 正文

MyBatis 访问数据库 报错 java.net.MalformedURLException_mybatis at java.net.url.(url.java:549) ~[na:

mybatis at java.net.url.(url.java:549) ~[na:1.8.0_271]

最近在配置 Mybatis 时,使用外部 properties 文件配置数据库信息时出现异常:java.net.MalformedURLException。网上查来好久才解决掉,这里记录一下。

异常代码如下:

  1. Caused by: java.net.MalformedURLException: no protocol: mysqlDb.properties
  2. at java.net.URL.<init>(URL.java:610)
  3. at java.net.URL.<init>(URL.java:507)
  4. at java.net.URL.<init>(URL.java:456)
  5. at org.apache.ibatis.io.Resources.getUrlAsStream(Resources.java:216)
  6. at org.apache.ibatis.io.Resources.getUrlAsProperties(Resources.java:247)
  7. at org.apache.ibatis.builder.xml.XMLConfigBuilder.propertiesElement(XMLConfigBuilder.java:233)
  8. at org.apache.ibatis.builder.xml.XMLConfigBuilder.parseConfiguration(XMLConfigBuilder.java:106)
  9. ... 32 more

properties文件如下:

  1. driver=com.mysql.cj.jdbc.Driver
  2. url=jdbc:mysql://localhost:3306/hukan?useSSL=true&useUnicode=true&characterEncoding=UTF-8
  3. username=root
  4. password=123456

mybatis-config.xml 文件如下:

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <!DOCTYPE configuration
  3. PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
  4. "http://mybatis.org/dtd/mybatis-3-config.dtd">
  5. <configuration>
  6. <properties url="mysqlDb.properties"/>
  7. <environments default="development">
  8. <environment id="development">
  9. <transactionManager type="JDBC"/>
  10. <dataSource type="POOLED">
  11. <!-- 数据库引擎 -->
  12. <property name="driver" value="${driver}"/>
  13. <!-- 数据库地址 -->
  14. <property name="url" value="${url}"/>
  15. <!-- 用户名 -->
  16. <property name="username" value="${username}"/>
  17. <!-- 密码 -->
  18. <property name="password" value="${password}"/>
  19. </dataSource>
  20. </environment>
  21. </environments>
  22. <mappers>
  23. <mapper resource="mapper/UserMapper.xml"/>
  24. </mappers>
  25. </configuration>

在网上查了很久,主要有两个解决方法:

1、

url=jdbc:mysql://localhost:3306/hukan?useSSL=true&amp;useUnicode=true&amp;characterEncoding=UTF-8

url 地址配置错误,因为可能是直接从字符串复制的,使用了转义字符,所以出现错误。只要把 & 改成 & 即可解决。

但这并没有解决我的问题……

2、properties 文件的编码错误,使用的默认编码不是 utf-8。修改文件编码即可解决。然而这也不是引起我程序异常的原因……

正在我一筹莫展的时候,我想到了MyBatis中文官网 ,进入网站我找了配置文件示例

  1. <properties resource="org/mybatis/example/config.properties">
  2. <property name="username" value="dev_user"/>
  3. <property name="password" value="F2Fa3!33TYyg"/>
  4. </properties>

看到这里我拍了拍我的脑袋,终于解决了我的问题。

因为我引入数据库配置文件竟然使用的 url……

<properties url="mysqlDb.properties"/>

当我改成

<properties resource="mysqlDb.properties"/>

程序终于可以正常运行了

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/羊村懒王/article/detail/136311
推荐阅读
相关标签
  

闽ICP备14008679号