第一次配置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 版权协议,转载请附上原文出处链接和本声明。