3
回答
mybatis Mapper的 namespace 是有限制的吧?
华为云实践训练营,热门技术免费实践!>>>   

项目存在这样一个类org.dawn.mybatis.model.User

Mapper namespace设为org.dawn.mybatis.model.user 就会报错:

java.lang.NoClassDefFoundError: org/dawn/mybatis/model/user (wrong name: org/dawn/mybatis/model/User)

设为org.dawn.mybatis.model.User就没有问题。 

举报
dawning
发帖于4年前 3回/6K+阅
共有3个答案 最后回答: 4年前
没看明白,你那不是大小写问题么?
--- 共有 2 条评论 ---
南湖船老大回复 @dawning : 我们一般写在type里面,没怎么注意过namespace。type="cn.xxt.album.domain.UserAlbum" 4年前 回复
dawningmybatis文档上说MapperXML文件中的namespace可以是任意值,namespace的值试过org.dawn.mybatis.model.useraa都没有问题,但就是org.dawn.mybatis.model.user会报问题中的错误,不知道是什么原因? 4年前 回复
NoClassDefFoundError很奇怪,难道Mybatis会根据Mapper的namespace的值动态生成一个类么??然后由于类重名导致错误么?

Blog blog = session.selectOne("org.mybatis.example.BlogMapper.selectBlog", 101);

This name can be directly mapped to a Mapper class of the same name as the namespace, with a method that matches the name, parameter, and return type as the mapped select statement.

BlogMapper mapper = session.getMapper(BlogMapper.class);
Blog blog = mapper.selectBlog(101);
如果namespace和类不相同,用第一种,如果和类相同,用第二种更好

顶部