0 0

Mybatis的Mapped Statements collection是这么来的?还有必须定义DAO层接口吗?5

最近在用spring和mybatis做一个项目,我想知道mybatis的Mapped Statements collection是怎么来的啊? 如果没定义和mapper配置文件名一样的dao层接口,就会报错:Mapped Statements collection does not contain value for xxx,所以就想问一下这里必须要定义那个dao层的interface吗?

比如说:我这里有个Mapper配置文件UserInfoDAO.xml
<mapper namespace="package.UserInfoDAO">
<select id="getUser" resultMap="xxx">sql语句</select>
</mapper>


在java中执行查询方法
User user = sqlSession.selectOne("package.UserInfoDAO.getUser",id);//sqlSession是通过spring注入的


UserInfoDAO接口
public interface UserInfoDAO {
   public User getUser(int id);
}


以上如果定义了UserInfoDAO接口程序可以正常执行,也能得到结果;如果不定义这个接口则会报错:Mapped Statements collection does not contain value for package.UserInfoDAO.getUser  这是为什么啊?
2014年5月09日 15:26

2个答案 按时间排序 按投票排序

0 0

http://www.iteye.com/topic/1060588

你写接口,mybatis帮你生成实现类,类里应该帮你getConnection 、createStatement、executeQuery...
然后帮你转换对象

我觉得大概就是这样的

但是不明白为什么使用接口,而不是直接扫描配置文件创建类

2014年5月09日 18:17
0 0

http://wildrain.iteye.com/blog/1236251
这个应该可以解决你的问题

2014年5月09日 17:59

相关推荐

Global site tag (gtag.js) - Google Analytics