是否可以将myBatis(iBatis)xml映射器放在项目之外?

时间:2010-06-08 17:04:44

标签: ibatis

根据用户指南,我可以使用文件路径代替 资源:


// Using classpath relative resources
<mappers>
    <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
</mappers>

// Using url fully qualified paths
<mappers>
    <mapper url="file:///var/sqlmaps/AuthorMapper.xml"/>
</mappers>

在我的项目中我试图将我的mapper xml“放在”项目之外 而我正在这样做:

<mapper url="file://D:/Mappers/ComponentMapper1.xml" /> 

我的log4j控制台的输出:

Error building SqlSession. 
The error may exist in file://D:/Mappers/ComponentMapper1.xml 
Cause: org.apache.ibatis.builder.BuilderException: Error parsing 
SQL Mapper Configuration. Cause: java.net.UnknownHostException: D 

是错误还是我做错了什么?

3 个答案:

答案 0 :(得分:1)

在驱动器号之前,您只需要一个额外的正斜杠。

答案 1 :(得分:0)

Sql Map Config相对于类路径查找映射文件,因此只需尝试将 ComponentMapper1.xml 添加到类路径中。

set CLASSPATH=%CLASSPATH%;D:/Mappers/

...

<mapper resource="ComponentMapper1.xml" />

答案 2 :(得分:-1)

您必须使用

<mapper url="file:///usr/local/ComponentMapper1.xml" />

其中file:///usr/local/ComponentMapper1.xml是XML文件的路径,而不是资源,如果您想在资源目录外使用映射器。