解决Mybatis配置文件Cannot find class: ${mysql.driver}问题

  • Post author:
  • Post category:mysql


第一次配置Mybatis文件时,代码是这样的:


    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC"></transactionManager>
            <dataSource type="POOLED">
                <property name="driver" value="${mysql.driver}"/>
                <property name="url"
                          value="${mysql.url}"/>
                <property name="username" value="${mysql.username}"/>
                <property name="password" value="${mysql.password}"/>
                <!-- 这里记得改成自己数据库对应的参数-->
            </dataSource>
        </environment>
    </environments>

然后报了

于是我将jdbc.properties里的值都复制到Mybatis配置文件中后,发现能够运行成功,感觉问题出现在${}符号上,然后我到百度上搜,百度上说因为xml文件的编码格式是iso要更换成UTF-8,但是也没有用。

后来我发现将jdbc.properties文件删掉,Mybatis配置文件里写上与数据库连接的内容后也可以正常运行,所以我怀疑会不会是jdbc.properties文件根本没有利用上,然后上网搜Mybatis的properties使用方式,发现了其中的秘密


properties有三种配置方法


第一种:

    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC"></transactionManager>
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.cj.jdbc.Driver"/>
                <property name="url"
                          value="jdbc:mysql://localhost:3306/bjpowernode"/>
                <property name="username" value="root"/>
                <property name="password" value="root"/>
            </dataSource>
        </environment>
    </environments>

将全部内容写到dataSource中,这样能够运行成功


第二种:文件内引用

使用properties标签

<properties>
    <property name="driver" value="com.mysql.cj.jdbc.Driver"/>
    <property name="url" value="jdbc:mysql://localhost:3306/bjpowernode"/>
    <property name="username" value="root"/>
    <property name="password" value="root"/>
</properties>

然后在dataSource里写,就能直接通过${}引用properties里的值了

<dataSource type="POOLED">
    <property name="driver" value="${driver}"/>
    <property name="url" value="${url}"/>
    <property name="username" value="${username}"/>
    <property name="password" value="${password}"/>
</dataSource>


第三种:

文件外引用

这个时候才需要用到jdbc.properties 相当于把连接数据库的内容放到了外面,然后通过引入的方式加入到Mybatis配置文件中,所以里面需要有个引入的代码

这行代码表示引入的资源文件的相对位置

    <properties resource="./jdbc.properties"/>
    <properties resource="./jdbc.properties"/>  
    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC"></transactionManager>
            <dataSource type="POOLED">
                <property name="driver" value="${mysql.driver}"/>
                <property name="url"
                          value="${mysql.url}"/>
                <property name="username" value="${mysql.username}"/>
                <property name="password" value="${mysql.password}"/>
            </dataSource>
        </environment>
    </environments>

添加后,表示让Mybatis配置文件中的${}符知道该去哪找。

这三种方法均能解决${}符报错问题。



版权声明:本文为qq_67503717原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。