项目名称:投行knib
KOCA版本 :5.0.1
KOCA模块 :mybatis
模块版本 :5.0.1
场景 :
mybatis-plus中使用了koca的batch标签,如<!DOCTYPE mapper PUBLIC "-//koca-jdbc-mybatis//DTD Mapper" "koca-jdbc-mybatis-mapper.dtd" >,<batch id="baseInsertBatch" fetchSize="1" >.
问题 :
当xml中引入了koca-jdbc-mybatis-mapper.dtd,启动服务报错:外部 DTD: 无法读取外部 DTD ‘koca-jdbc-mybatis-mapper.dtd’, 因为 accessExternalDTD 属性设置的限制导致不允许 ‘file’ 访问。
尝试解决方案:
<dependency>
<groupId>com.szkingdom.koca.boot</groupId>
<artifactId>koca-boot-starter-mybatis</artifactId>
</dependency>
如果是引入了mybatis-plus,5.2.0之前的版本都不支持,从5.3.0开始支持
临时解决方案:把xml中的<!DOCTYPE mapper PUBLIC "-//koca-jdbc-mybatis//DTD Mapper" "koca-jdbc-mybatis-mapper.dtd" >
改成<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
,同时不使用KOCA的批处理batch标签
如果没有引入mybatis-plus,只引入了mybatis时,只需要加入配置
koca:
jdbc:
mapper:
enabled: true
即可解决