首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MyBatis配置

MyBatis配置
EN

Stack Overflow用户
提问于 2012-04-03 13:01:12
回答 2查看 3.1K关注 0票数 2

我希望在MyBatis中使用接口而不是mapper文件。在MyBatis配置文件中,我定义了映射器<mapper class="aa.B" />,其中B包含带有MyBatis注释的方法。当我试图创建一个映射实例session.getMapper(B.class);时,我会得到一个错误:

org.xml.sax.SAXParseException:属性"class“必须声明为元素类型"mapper”。

如何在这里使用接口映射SQL语句?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-04-03 13:14:38

不能通过sqlconfig xml文件添加Mapper接口,必须使用Java

代码语言:javascript
复制
Configuration.addMapper(B.class)

sqlconfig xml中的节点用于定义sqlmap xml,而不是Mapper接口。或者您可以使用mybatis,它支持将上述包中的所有映射器自动添加到sqlsessionfactory的配置中。

票数 1
EN

Stack Overflow用户

发布于 2012-08-16 05:42:34

异常是由于DTD中的“mapper”元素中缺少属性'class‘所致。

例如,在MyBatis 3.0.1中,“mapper”在DTD中没有'class‘属性,如下所示:

代码语言:javascript
复制
<!ATTLIST mapper
resource CDATA #IMPLIED
url CDATA #IMPLIED
>

您需要将MyBatis库升级到3.1.1这样的最新库。

在版本中,“mapper”的属性定义如下:

代码语言:javascript
复制
<!ATTLIST mapper
resource CDATA #IMPLIED
url CDATA #IMPLIED
class CDATA #IMPLIED
>

您可以在MyBatis库中的以下路径中找到您的DTD文件:

org/apache/ibatis/builder/xml/mybatis-3-config.dtd

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9993818

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档