【问题标题】:mybatis mapper xml: The content of element type "mapper" must matchmybatis mapper xml:元素类型“mapper”的内容必须匹配
【发布时间】:2013-04-18 08:31:28
【问题描述】:

我很难让我的简单 mybatis 文件正常工作。我有这个文件:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
    PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
    "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="truthtree.model.mysql.UserMapper">

    <typeAlias alias="User" type="truthtree.model.mysql.User" />

    <select id="getAllUsers" resultType="User">
        select * from User
    </select>

    <select id="findUserByID" resultType="User">
        select *
        from User
        where id=#{id,javaType=int}
    </select>

    <select id="findByNameAndPassword" resultType="User">
        select *
        from User
        where name = #{name,javaType=String}
          and password = #{password,javaType=String}
    </select>

</mapper>

我得到以下异常:

原因:org.xml.sax.SAXParseException:元素类型“mapper”的内容必须匹配“(cache-ref|cache|resultMap*|parameterMap*|sql*|insert*|update*|delete*|选择*)+"。

这很令人困惑,因为我肯定有一些 s 在那里。任何想法这里可能有什么问题?谢谢!

【问题讨论】:

    标签: java database database-connection ibatis mybatis


    【解决方案1】:

    这里的错误是typeAlias 元素没有进入mapper 文件。它不在mybatis-3-mapper.dtd 中。 typeAlias 元素必须包含在 mybatis-config 文件中(在 typeAliases 元素中,因为在 mybatis-3-config.dtd 中很清楚:

    <!ELEMENT typeAliases (typeAlias*,package*)>
    
    <!ELEMENT typeAlias EMPTY>
    <!ATTLIST typeAlias
    type CDATA #REQUIRED
    alias CDATA #IMPLIED
    >
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-06-26
      • 2017-04-06
      • 1970-01-01
      • 1970-01-01
      • 2017-03-22
      • 1970-01-01
      • 1970-01-01
      • 2012-09-10
      相关资源
      最近更新 更多