MyBatis 访问数据库 报错 java.net.MalformedURLException

"博主在配置MyBatis时遇到java.net.MalformedURLException,问题出在将properties文件的引入方式从`url`改为`resource`。错误起初被误认为是URL或编码问题,但最终解决方案是正确使用`<properties resource="mysqlDb.properties"/>`。"
摘要由CSDN通过智能技术生成

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

异常代码如下:

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

properties文件如下:

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

mybatis-config.xml 文件如下:

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE configuration
        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
    <properties url="mysqlDb.properties"/>
    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC"/>
            <dataSource type="POOLED">
                <!-- 数据库引擎 -->
                <property name="driver" value="${driver}"/>
                <!-- 数据库地址 -->
                <property name="url" value="${url}"/>
                <!-- 用户名 -->
                <property name="username" value="${username}"/>
                <!-- 密码 -->
                <property name="password" value="${password}"/>
            </dataSource>
        </environment>
    </environments>
    <mappers>
        <mapper resource="mapper/UserMapper.xml"/>
    </mappers>
</configuration>

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

1、

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

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

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

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

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

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

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

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

<properties url="mysqlDb.properties"/>

当我改成

<properties resource="mysqlDb.properties"/>

程序终于可以正常运行了

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值