首个Mybatis就好多报错,求解啊

好给定性 2016-11-12 04:36:33
Test类

package csc.mybatis.user;


import java.io.IOException;
import java.io.InputStream;

import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;

public class Test {
public static void main(String[] args) throws IOException{
String resourceString="config.xml";
//
InputStream is=Test.class.getClassLoader().getResourceAsStream(resourceString);
SqlSessionFactory factory=new SqlSessionFactoryBuilder().build(is);
SqlSession session=factory.openSession();

//
String statement="csc.mybatis.user.userMapper.getUser";
User user=session.selectOne(statement,1);

System.out.print(user);
}
}



user类

package csc.mybatis.user;

public class User {
private int id;
private String name;
private int age;

public User() {
super();
// TODO Auto-generated constructor stub
}

public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}

public String toString(){
return "id:"+id+"-name:"+name+"-age:"+age;
}
}


config.xml配置

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC" />
<dataSource type="POOLED">
<property name="driver" value="oracle.jdbc.driver.OracleDrive" />
<property name="url" value="jdbc:oracle:thin:@localhost:1521:orcl" />
<property name="username" value="system" />
<property name="password" value="abc123" />
</dataSource>
</environment>
</environments>

<mappers>
<mapper resource="csc/mybatis/user/userMapper.xml" />
</mappers>

</configuration>




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

<mapper namespace="csc.mybatis.user.userMapper">
<!-- 按id查询 -->
<select id="getUser" parameterType="int" resultType="csc.mybatis.user.User">
select * from ss where id=#{id}
</select>

</mapper>



贴上报错的

Exception in thread "main" org.apache.ibatis.exceptions.PersistenceException:
### Error building SqlSession.
### The error may exist in csc/mybatis/user/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: 4; columnNumber: 49; 文档根元素 "mapper" 必须匹配 DOCTYPE 根 "configuration"。
at org.apache.ibatis.exceptions.ExceptionFactory.wrapException(ExceptionFactory.java:23)
at org.apache.ibatis.session.SqlSessionFactoryBuilder.build(SqlSessionFactoryBuilder.java:79)
at org.apache.ibatis.session.SqlSessionFactoryBuilder.build(SqlSessionFactoryBuilder.java:63)
at csc.mybatis.user.Test.main(Test.java:16)
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: 4; columnNumber: 49; 文档根元素 "mapper" 必须匹配 DOCTYPE 根 "configuration"。
at org.apache.ibatis.builder.xml.XMLConfigBuilder.parseConfiguration(XMLConfigBuilder.java:106)
at org.apache.ibatis.builder.xml.XMLConfigBuilder.parse(XMLConfigBuilder.java:89)
at org.apache.ibatis.session.SqlSessionFactoryBuilder.build(SqlSessionFactoryBuilder.java:77)
... 2 more
Caused by: org.apache.ibatis.builder.BuilderException: Error creating document instance. Cause: org.xml.sax.SAXParseException; lineNumber: 4; columnNumber: 49; 文档根元素 "mapper" 必须匹配 DOCTYPE 根 "configuration"。
at org.apache.ibatis.parsing.XPathParser.createDocument(XPathParser.java:253)
at org.apache.ibatis.parsing.XPathParser.<init>(XPathParser.java:122)
at org.apache.ibatis.builder.xml.XMLMapperBuilder.<init>(XMLMapperBuilder.java:75)
at org.apache.ibatis.builder.xml.XMLConfigBuilder.mapperElement(XMLConfigBuilder.java:318)
at org.apache.ibatis.builder.xml.XMLConfigBuilder.parseConfiguration(XMLConfigBuilder.java:104)
... 4 more
Caused by: org.xml.sax.SAXParseException; lineNumber: 4; columnNumber: 49; 文档根元素 "mapper" 必须匹配 DOCTYPE 根 "configuration"。
at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:198)
at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.error(ErrorHandlerWrapper.java:134)
at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:437)
at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:368)
at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:325)
at com.sun.org.apache.xerces.internal.impl.dtd.XMLDTDValidator.rootElementSpecified(XMLDTDValidator.java:1599)
at com.sun.org.apache.xerces.internal.impl.dtd.XMLDTDValidator.handleStartElement(XMLDTDValidator.java:1877)
at com.sun.org.apache.xerces.internal.impl.dtd.XMLDTDValidator.startElement(XMLDTDValidator.java:742)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanStartElement(XMLDocumentFragmentScannerImpl.java:1363)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$ContentDriver.scanRootElementHook(XMLDocumentScannerImpl.java:1292)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:3138)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$PrologDriver.next(XMLDocumentScannerImpl.java:880)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:606)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:510)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:848)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:777)
at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:141)
at com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(DOMParser.java:243)
at com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:347)
at org.apache.ibatis.parsing.XPathParser.createDocument(XPathParser.java:251)
... 8 more





不知道到底是哪个错误了。。。
...全文
156 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
好给定性 2016-11-12
  • 打赏
  • 举报
回复
自己解决了 1.oracle的驱动有问题,加载的jodbc14.jar包不适合。。。改换了jodbc6.jar 2.好像是新手copy改动后的问题,2个配置xml文件:config.xml为<!DOCTYPE configuration PUBLIC......>,但mapper就相应要改为<!DOCTYPE mapper PUBLIC...>才对 3.xml中的驱动直接写错了。。。driver应该为“oracle.jdbc.OracleDriver”。。 感谢以上回复
imsadan01 2016-11-12
  • 打赏
  • 举报
回复
6666666666666666666666666666666666666666666666666666
好给定性 2016-11-12
  • 打赏
  • 举报
回复
引用 2 楼 baidu_27893705 的回复:
Mapper文件写错了。
求指点
好给定性 2016-11-12
  • 打赏
  • 举报
回复
引用 3 楼 baidu_27893705 的回复:
namespace="写你类的完全路径"


这个好像感觉没问题。。。不太清楚
好给定性 2016-11-12
  • 打赏
  • 举报
回复
引用 1 楼 zh383603842 的回复:
The error may exist in csc/mybatis/user/userMapper.xml

好像说的文件不存在吧
整个是这样,路径有问题吗?
yannsPeng 2016-11-12
  • 打赏
  • 举报
回复
namespace="写你类的完全路径"
yannsPeng 2016-11-12
  • 打赏
  • 举报
回复
Mapper文件写错了。
永远的小鱼 2016-11-12
  • 打赏
  • 举报
回复
The error may exist in csc/mybatis/user/userMapper.xml 好像说的文件不存在吧

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧