最近在学习ssm,在进行配置的时候遇到了点问题,在此记录下,希望对有同样遇到问题的人有帮助。

目前做ssm的人好多都是用的eclipse,但是由于博主习惯了idea,所以有的时候遇到很多奇葩的问题。而且好多问题在eclipse都是不存在的,心好累! 问题一:

1
Invalid bound statement (not found): 

很明显,就是dao文件和mapper.xml文件没有对应起来。 这个是我项目的结构文件 ssm_structure 文件结构也不是多复杂,参考网上的结构来写的。 这个是mapper.xml文件的部分内容

1
2
3
<mapper namespace="top.txiner.dao.IUserDao" >
	<resultMap id="BaseResultMap" type="top.txiner.pojo.User" >
	......

namespace确实能够定向到dao文件,ctrl+鼠标左键成功定位,不是文件命名的问题。 难道是mapper文件没有成功引入?

1
2
3
4
5
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
    <property name="dataSource" ref="dataSource" />
    <!-- 自动扫描mapping.xml文件 -->
    <property name="mapperLocations" value="classpath*:top/txiner/mapping/*.xml"/>
</bean>

确实没有写错文件。突然想到,会不会是mvn在处理的时候没有把src目录下的xml文件导入? mvn_output 果然,我创建的mapping文件夹在target目录下并没有,所以肯定是没有被添加进来,这下问题就好办了,在pom.xml文件夹把src下的xml文件添加进来就可以了

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
<build>
    <resources>
        <resource>
            <directory>src/main/java</directory>
            <includes>
                <include>**/*</include>
            </includes>
            <filtering>false</filtering>
        </resource>
    </resources>
</build>

再执行就正常了。 问题二:

1
org.mybatis.spring.transaction.SpringManagedTransaction.getTimeout()Ljava/lang/Integer;

一看这个问题,瞬间蒙蔽!这是什么错误啊? 在网上百度之后发现是mybatis的jar包和mybatis-spring的jar包版本不对应,官网这说的mybatis也不是很详细,我就直接全部改成最新的包,编译通过没问题了。