最近把工程改为Hibernate和MyBatis并存,并存只要注意两点即可:
1.使用同一个dataSource
2.事物交给Hibernate进行管理(Hibernate4+) Hibernate做CUD操作 MyBatis负责R
在整合完成之后发现一个问题。使用MyBatis进行查询报错:
Invalid bound statement (not found)
网上有很多同样的错误,但是出现这个错误的原因有很多种,解法都是不一样的。这里说一下我出现这个错误的原因。
这里主要是因为我使用generator工具后,生成的mapper文件。我排除错误的方法:
1.使用MyBatis进行一个最基础的select * 查询(发现报错)
2.检查MyBatis的xml文件是否被加载,xml文件路径是否正确 (加载,路径正确)
3.检查xml文件中的内容是否有误(有误)
最终确定错误就出在了xml配置文件中。
这里需要保证:
mapper 的 namespace 对应的是DAO
resultMap 的 namespace 对应的是pojo
<mapper namespace="com.xxx.dao.mybatis.SubjectMapper" > <resultMap id="BaseResultMap" type="com.xxx.domain.mybatis.Subject" > <id column="id" property="id" jdbcType="INTEGER" /> </resultMap>