我在两个模块中遇到MyBatis配置问题。项目结构如下:
当我在DB模块中拥有所有内容时,我可以连接到数据库并执行SQL但是当我想在MIXED模块中使用来自DB模块的ConnectionFactory.class和config.xml时,它无法正常工作。
### Error building SqlSession.
### Cause: org.apache.ibatis.builder.BuilderException: Error creating document
instance. Cause: org.xml.sax.SAXParseException; lineNumber: 24; columnNumber:
24; Premature end of file.
我认为问题出在
中的config.xml文件中<mappers>
</mappers>
我已尝试过所有可能性:http://www.mybatis.org/mybatis-3/configuration.html#mappers但没有任何效果:( 任何想法如何使config.xml看起来允许我使用其他模块中的类而不是复制它们但同时使用其他模块中的mapper?
我的一些尝试:
<mappers>
<mapper url="file:///MIXED/src/main/resources/ArticlesMapper.xml"/>
<mapper resource="VideoMapper.xml"/>
</mappers>
<mappers>
<mapper resource="MIXED/src/main/resources/ArticlesMapper.xml"/>
<mapper resource="VideoMapper.xml"/>
</mappers>
答案 0 :(得分:0)
首先确保您的maven MIXED
模块依赖于maven DB
模块。您需要这样才能使类和资源可用。将依赖项添加到pom.xml
模块的MIXED
中(例如查看this question)
执行此类之后,DB
模块的类和资源位于MIXED
模块的类路径中,您在config.xml
中引用它们的方式与引用模块本身的资源相同:
<mappers>
<mapper resource="VideoMapper.xml"/>
</mappers>