2013-04-17 102 views
1

我很難讓我的簡單mybatis文件正常工作。我有這個文件:mybatis映射器xml:元素類型「映射器」的內容必須匹配

<?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:元素類型(緩存-REF的「映射」必須匹配」的內容|緩存|結果映射* | parameterMap的* | SQL * |插入* |更新* |刪除* |選擇*)+」。

這是令人困惑,因爲我肯定有一些在那裏。任何想法在這裏可能是錯的?謝謝!

回答

3

您在這裏輸入的錯誤是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 
> 
相關問題