编辑历史:
2018.3.14 小赖 文档初始化
问题描述:我的配置文件中使用了 http://mybatis.org/dtd/mybatis-3-config.dtd 的dtd文件,但是我项目启动时并没有联网,项目加载时找不到这个dtd文件,于是报错。配置文件如下:
<?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>
<settings>
<setting name="cacheEnabled" value="true" />
<setting name="lazyLoadingEnabled" value="true" />
<setting name="multipleResultSetsEnabled" value="true" />
<setting name="useColumnLabel" value="true" />
<setting name="defaultExecutorType" value="REUSE" />
<setting name="defaultStatementTimeout" value="25000" />
<setting name="callSettersOnNulls" value="true"/>
</settings>
</configuration>
想法:由于项目初始化时断网并不能从网上获取到mybatis-3-config.dtd文件,这样只需要从网上将dtd文件下载下来,然后引用项目路径就可以了解决。
解决方案:这里需要注意一个问题,我们并不能单纯的使用html中的相对绝对路径来配置处理,而要使用classpath的路径来解决(原因:编译打包);最后,我将mybatis-3-config.dtd放在xml的同等目录下,问题解决。解决之后的配置文件如下:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"classpath:spring/mybatis-3-config.dtd">
<configuration>
<settings>
<setting name="cacheEnabled" value="true" />
<setting name="lazyLoadingEnabled" value="true" />
<setting name="multipleResultSetsEnabled" value="true" />
<setting name="useColumnLabel" value="true" />
<setting name="defaultExecutorType" value="REUSE" />
<setting name="defaultStatementTimeout" value="25000" />
<setting name="callSettersOnNulls" value="true"/>
</settings>
</configuration>