mybatis PersistenceException Mapper错误

时间:2014-05-25 14:35:24

标签: mybatis

我不知道出了什么问题。 使用mapper有些不好但一切看起来都不错。

文件UserMapper.xml

<?xml version="1.0" encoding="UTF-8"?>
<mapper namespace="com.javacodegeeks.snippets.enterprise.UserMapper">
    <select id="addUser" parameterType="int" resultType="com.javacodegeeks.snippets.enterprise.User">
        insert into  * from users where id = #{id}
    </select>
    <select id="getUser" parameterType="int" resultType="com.javacodegeeks.snippets.enterprise.User">
        select * from com.javacodegeeks.snippets.enterprise.User where id = #{id}
    </select>  
</mapper>

我收到此错误:

Exception in thread "main" org.apache.ibatis.exceptions.PersistenceException: 
### Error building SqlSession.
### The error may exist in UserMapper.xml
### Cause: org.apache.ibatis.builder.BuilderException: Error parsing SQL Mapper Configuration. Cause: org.apache.ibatis.builder.BuilderException: Error creating document instance.  Cause: org.xml.sax.SAXParseException; lineNumber: 2; columnNumber: 70; Document root element "mapper", must match DOCTYPE root "null".
at org.apache.ibatis.exceptions.ExceptionFactory.wrapException(ExceptionFactory.java:23)
at org.apache.ibatis.session.SqlSessionFactoryBuilder.build(SqlSessionFactoryBuilder.java:51)
at org.apache.ibatis.session.SqlSessionFactoryBuilder.build(SqlSessionFactoryBuilder.java:35)
at Main.do1(Main.java:105)
at Main.main(Main.java:124)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:134)
Caused by: org.apache.ibatis.builder.BuilderException: Error parsing SQL Mapper Configuration. Cause: org.apache.ibatis.builder.BuilderException: Error creating document instance.  Cause: org.xml.sax.SAXParseException; lineNumber: 2; columnNumber: 70; Document root element "mapper", must match DOCTYPE root "null".

1 个答案:

答案 0 :(得分:1)

您可以使用以下doc类型。但是,我发现您复制的代码存在一些差异。你确定INSERT和SELECT语句吗?我希望它的复制错误

<?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="com.javacodegeeks.snippets.enterprise.UserMapper">

    <select id="addUser" parameterType="int" resultType="com.javacodegeeks.snippets.enterprise.User">
        insert into  * from users where id = #{id}
    </select>

    <select id="getUser" parameterType="int" resultType="com.javacodegeeks.snippets.enterprise.User">
        select * from com.javacodegeeks.snippets.enterprise.User where id = #{id}
    </select>

</mapper>
相关问题