当前位置: 首页 > 知识库问答 >
问题:

mybatis mapper xml:元素类型“mapper”的内容必须匹配

龙晟睿
2023-03-14

我很难让我的简单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>

我得到以下异常:

原因:组织。xml。萨克斯。SAXParseException:元素类型“mapper”的内容必须匹配“(cache ref | cache | resultMap*| parameterMap*| sql*| insert*| update*| delete*| select*)”。

这很让人困惑,因为我肯定有一些s在里面。你知道这里有什么问题吗?谢谢

共有1个答案

吕高昂
2023-03-14

这里的错误在于,typeAlias元素没有进入映射器文件。它不存在于mybatis-3映射器中。dtd。类型别名(typeAlias)元素必须包含在mybatis配置文件中(在类型别名(typeAlias)元素中,这在mybatis-3-config.dtd中很清楚:

<!ELEMENT typeAliases (typeAlias*,package*)>

<!ELEMENT typeAlias EMPTY>
<!ATTLIST typeAlias
type CDATA #REQUIRED
alias CDATA #IMPLIED
>
 类似资料: