alias_888 2015-12-12 08:15 采纳率: 0%
浏览 12357
已结题

mybatis mapper xml文件路径问题

在spring中使用mybatis.其中目录结构如下
图片说明

spring配置文件如下:

 <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <property name="dataSource" ref="dataSource"/>
        <property name="configLocation" value="classpath:mybatis.xml"/>
    </bean>

    <!-- dao接口的扫描-->
    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
        <property name="basePackage" value="xblog.dal.dao"/>
        <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/>
    </bean>

其中mybatis配置文件mybatis.xml在resources文件夹中,内容如下:

 <mappers>
        <mapper resource="xblog/dal/mybatis/UserMapper.xml" />
<mappers>

UserMapper.xml放在java源码的xblog.dal.mybatis这个package下,

测试时,出错:
Caused by: java.io.IOException: Could not find resource xblog/dal/mybatis/UserMapper.xml

把UserMapper.xml放在resources目录下,并将mybatis.xml修改为:

就可以通过测试.请问:

如何访问到package目录下的资源.

  • 写回答

5条回答 默认 最新

  • alias_888 2015-12-14 18:11
    关注

    目前的回答没有一个是解决问题的, qq_28797471 的回到只能说是可行。但不是我想要的结果。
    还是自己来回答一下。

    1. 最大的问题就是mapper xml路径问题:
    Java 项目分为两个部分,一个是源码,一个是资源,在使用maven等构建工具时,默认会将源码编译后再加上资源目录的文件放到target目录下作为最后运行的文件(可以是war,jar,或者目录)。有时为了方便,我们会在src/main/java源码目录下放了资源文件,例如mybatis的mapper文件,方便我们编程时展开查看。这时,我们需要设置编译时也将这些配置文件放到target目录下,否则最后的target目录式没有这些文件的。在maven中,可以很方便地在build元素中添加:
    
     <build>
            <!--注意,如果将静态资源放在src/main/java中,那么编译时将被maven忽略,在target目录下将没有这些资源,此处,我们将
            mybatis的mapper.xml放在了dal包中,方便编程查看,所以需要将该目录添加为资源目录.
            -->
            <resources>
                <resource>
                <directory>src/main/java</directory>
                <includes>
                <include>**/*.xml</include>
                </includes>
                </resource>
            </resources>
    
            <finalName>xblog</finalName>
        </build>
    
    
    评论
  • 锤石是种信仰吗 2015-12-12 09:49
    关注

    我现在用的是SpringMVC和Hibernate了,MyBatis也接触过。
    祝你好运,早点配置好。

    评论
  • 爱情过夜 2015-12-14 04:54
    关注

    如果你是整合spring的话,在spring配置文件中配置就好了,如果整合其他的框架一般也都是在配置文件中扫描配置文件

    评论
  • Code码码 2015-12-14 18:06
    关注

    没记错的话,mapper.xml应该与对应的类放在一个包下面吧

    评论
  • zhangxuyu1118 2017-10-08 03:24
    关注

    "把UserMapper.xml放在resources目录下,并将mybatis.xml修改为:"

    修改为什么了?

    评论
编辑
预览

报告相同问题?

手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部