我希望在MyBatis中使用接口而不是mapper文件。在MyBatis配置文件中,我定义了映射器<mapper class="aa.B" />,其中B包含带有MyBatis注释的方法。当我试图创建一个映射实例session.getMapper(B.class);时,我会得到一个错误:
org.xml.sax.SAXParseException:属性"class“必须声明为元素类型"mapper”。
如何在这里使用接口映射SQL语句?
发布于 2012-04-03 13:14:38
不能通过sqlconfig xml文件添加Mapper接口,必须使用Java
Configuration.addMapper(B.class)sqlconfig xml中的节点用于定义sqlmap xml,而不是Mapper接口。或者您可以使用mybatis,它支持将上述包中的所有映射器自动添加到sqlsessionfactory的配置中。
发布于 2012-08-16 05:42:34
异常是由于DTD中的“mapper”元素中缺少属性'class‘所致。
例如,在MyBatis 3.0.1中,“mapper”在DTD中没有'class‘属性,如下所示:
<!ATTLIST mapper
resource CDATA #IMPLIED
url CDATA #IMPLIED
>您需要将MyBatis库升级到3.1.1这样的最新库。
在版本中,“mapper”的属性定义如下:
<!ATTLIST mapper
resource CDATA #IMPLIED
url CDATA #IMPLIED
class CDATA #IMPLIED
>您可以在MyBatis库中的以下路径中找到您的DTD文件:
org/apache/ibatis/builder/xml/mybatis-3-config.dtd
https://stackoverflow.com/questions/9993818
复制相似问题