ssm中,dao接口能不能和mapper.xml不在同一个文件夹下?

在spring的配置文件中,对于mapper的访问,是按如下配置的

    <!-- Mapper代理开发(基于MapperScannerConfigurer) -->
    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
         <property name="basePackage" value="com.practice.dao" />
    </bean>

这样的话,把各个dao接口和mapper.xml都放在com.practice.dao包下是可以从数据库获取数据的。但是我想尝试着将它们分开放置在不同的包下,如:图片说明

却会报org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.practice.dao.UserDao.findUser

请问要怎样配置,才能实现dao接口和mapper.xml不在同一包下呢?

<bean id="sessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">  
    <property name="dataSource" ref="dataSource" /> 
    <property name="typeAliasesPackage" value="com.model"/> 
    <property name="configLocation" value="classpath:mybatis-config.xml" />
    <property name="mapperLocations" value="classpath:mappers/*.xml" />  
</bean>

配置文件里面不是很清楚了么?改下basePackage的value就行了。

可以的。没有问题,我的project就是这样。不过websphere下可能会报这种异常

可以的,

<!-- 配置mybatis配置文件的位置 -->

<!-- 配置扫描Mapper XML的位置 -->
<!--
<!--value="classpath*:/mapper/**/*.xml"/>-->
value="classpath:mapper/*.xml"/>

这样配置就可以了

可以,在mybatis的配置中,有些地方是可以省略的,如果你的mapper.xml文件和mapper.java文件,如果放到同一个文件夹中,就可以省略很多配置。

可以的,但是你要配置映射下