Caused by: org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 1; 前言中不允许有内容。

文章目录

      • `问题截图:`
      • `报错内容`
      • `解决方案:`
      • `问题产生其他原因`
      • `mybatis面试题`

Caused by: org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 1; 前言中不允许有内容。_第1张图片

问题截图:

报错内容

Caused by: org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 1; 前言中不允许有内容。

##  Error building SqlSession.
##  The error may exist in com/iflytek/mapper
##  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: 1; columnNumber: 1; 前言中不允许有内容。
	at org.apache.ibatis.exceptions.ExceptionFactory.wrapException(ExceptionFactory.java:30)
	at org.apache.ibatis.session.SqlSessionFactoryBuilder.build(SqlSessionFactoryBuilder.java:82)
	at org.apache.ibatis.session.SqlSessionFactoryBuilder.build(SqlSessionFactoryBuilder.java:66)
	at com.iflytek.util.sqlSessionCreate.getsqlSession(sqlSessionCreate.java:23)
	at com.iflytek.homework.testDemo1(homework.java:18)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
	at org.testng.internal.invokers.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:139)
	at org.testng.internal.invokers.TestInvoker.invokeMethod(TestInvoker.java:664)
	at org.testng.internal.invokers.TestInvoker.invokeTestMethod(TestInvoker.java:227)
	at org.testng.internal.invokers.MethodRunner.runInSequence(MethodRunner.java:50)
	at org.testng.internal.invokers.TestInvoker$MethodInvocationAgent.invoke(TestInvoker.java:957)
	at org.testng.internal.invokers.TestInvoker.invokeTestMethods(TestInvoker.java:200)
	at org.testng.internal.invokers.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:148)
	at org.testng.internal.invokers.TestMethodWorker.run(TestMethodWorker.java:128)
	at java.base/java.util.ArrayList.forEach(ArrayList.java:1540)
	at org.testng.TestRunner.privateRun(TestRunner.java:848)
	at org.testng.TestRunner.run(TestRunner.java:621)
	at org.testng.SuiteRunner.runTest(SuiteRunner.java:443)
	at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:437)
	at org.testng.SuiteRunner.privateRun(SuiteRunner.java:397)
	at org.testng.SuiteRunner.run(SuiteRunner.java:336)
	at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
	at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:95)
	at org.testng.TestNG.runSuitesSequentially(TestNG.java:1280)
	at org.testng.TestNG.runSuitesLocally(TestNG.java:1200)
	at org.testng.TestNG.runSuites(TestNG.java:1114)
	at org.testng.TestNG.run(TestNG.java:1082)
	at com.intellij.rt.testng.IDEARemoteTestNG.run(IDEARemoteTestNG.java:66)
	at com.intellij.rt.testng.RemoteTestNGStarter.main(RemoteTestNGStarter.java:109)
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: 1; columnNumber: 1; 前言中不允许有内容。
	at org.apache.ibatis.builder.xml.XMLConfigBuilder.parseConfiguration(XMLConfigBuilder.java:122)
	at org.apache.ibatis.builder.xml.XMLConfigBuilder.parse(XMLConfigBuilder.java:99)
	at org.apache.ibatis.session.SqlSessionFactoryBuilder.build(SqlSessionFactoryBuilder.java:80)
	... 30 more
Caused by: org.apache.ibatis.builder.BuilderException: Error creating document instance.  Cause: org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 1; 前言中不允许有内容。
	at org.apache.ibatis.parsing.XPathParser.createDocument(XPathParser.java:263)
	at org.apache.ibatis.parsing.XPathParser.<init>(XPathParser.java:127)
	at org.apache.ibatis.builder.xml.XMLMapperBuilder.<init>(XMLMapperBuilder.java:81)
	at org.apache.ibatis.builder.xml.XMLConfigBuilder.mapperElement(XMLConfigBuilder.java:379)
	at org.apache.ibatis.builder.xml.XMLConfigBuilder.parseConfiguration(XMLConfigBuilder.java:120)
	... 32 more
Caused by: org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 1; 前言中不允许有内容。
	at java.xml/com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:204)
	at java.xml/com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.fatalError(ErrorHandlerWrapper.java:178)
	at java.xml/com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:400)
	at java.xml/com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:327)
	at java.xml/com.sun.org.apache.xerces.internal.impl.XMLScanner.reportFatalError(XMLScanner.java:1471)
	at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$PrologDriver.next(XMLDocumentScannerImpl.java:978)
	at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:605)
	at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:534)
	at java.xml/com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:888)
	at java.xml/com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:824)
	at java.xml/com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:141)
	at java.xml/com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(DOMParser.java:246)
	at java.xml/com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:339)
	at org.apache.ibatis.parsing.XPathParser.createDocument(XPathParser.java:261)
	... 36 more

Default Suite
Total tests run: 1, Passes: 0, Failures: 1, Skips: 0



Process finished with exit code 0

产生原因:
mapper映射文件出现错误
Caused by: org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 1; 前言中不允许有内容。_第2张图片

Caused by: org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 1; 前言中不允许有内容。_第3张图片



解决方案:

Caused by: org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 1; 前言中不允许有内容。_第4张图片
Caused by: org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 1; 前言中不允许有内容。_第5张图片

问题产生其他原因

或者还有其它的地方出现问题,例如
Caused by: org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 1; 前言中不允许有内容。_第6张图片
总而言之,基本上都是xml文件的问题





mybatis面试题

嗯~~~~,为了文章质量不是50分我也是拼了\

1. 什么是MyBatis?
答案:MyBatis是一个开源的Java持久层框架,它通过提供基于映射文件和注解的方式,简化了数据库访问的过程。MyBatis将数据库操作与Java对象的映射解耦,使得开发人员可以通过简单的配置来执行SQL语句并处理结果集。

2. MyBatis的优点是什么?
答案:MyBatis具有以下优点:

  • 简化数据库访问:通过配置文件或注解的方式来定义数据库操作,减少了传统的JDBC编码工作量。
  • 灵活性:支持自定义SQL语句,可以编写复杂的SQL语句来满足特定的需求。
  • 易于集成:与其他流行的框架(如Spring)很好地集成,可以无缝地与现有的应用程序集成。
  • 可扩展性:MyBatis提供了插件机制,可以方便地扩展其功能。
  • 缓存支持:MyBatis支持本地缓存和二级缓存,可以提高性能。
  • 映射灵活性:可以灵活地指定Java对象与数据库表之间的映射关系,支持高级映射技术。

3. MyBatis中的三级缓存是什么?
答案:MyBatis中的三级缓存指的是一级缓存(本地缓存)、二级缓存(全局缓存)和三级缓存(分布式缓存)的组合。一级缓存是在会话级别上的缓存,可以提高单个会话中同一对象的查询效率。二级缓存是在多个会话之间共享的缓存,可以提高不同会话中相同SQL语句的查询效率。三级缓存是在分布式环境下的缓存解决方案,可以使用第三方缓存框架如Redis或Ehcache来实现。

4. MyBatis中的一级缓存是如何工作的?
答案:一级缓存是MyBatis默认开启的,在同一个会话中有效。当执行相同的SQL语句查询时,MyBatis会先检查一级缓存中是否已经存在结果,如果存在,则直接从缓存中获取,减少了对数据库的查询操作。一级缓存的作用范围仅限于当前会话,当会话关闭或进行了更新操作时,一级缓存被清空。

5. 如何配置MyBatis的二级缓存?
答案:要配置MyBatis的二级缓存,需要在MyBatis配置文件中添加元素,并指定相应的缓存实现类。MyBatis内置了多种缓存实现,如PerpetualCache、FifoCache、LRUCache等。在映射文件中,可以通过在等),使得SQL语句的组装更加灵活。

11. MyBatis中的插件机制是什么?如何使用插件?
答案:MyBatis的插件机制允许开发人员在MyBatis的执行过程中拦截和修改SQL语句的处理过程。使用插件可以对MyBatis的行为进行扩展和定制,以满足特定的需求。要使用插件,需要实现Interceptor接口,并在MyBatis配置文件中配置插件的拦截器。插件可以对SQL语句的解析、参数的处理、结果的处理等进行拦截和修改。

12. MyBatis中的#和$的区别是什么?

答案:在MyBatis中,#和KaTeX parse error: Expected 'EOF', got '#' at position 29: …数。但它们的处理方式是不同的。#̲表示使用预编译的方式,参数会被…表示直接替换参数的值,不进行任何处理。使用#可以提高应用程序的安全性,而使用$可以灵活地动态生成SQL语句。

13. MyBatis中的标签是用来做什么的?
答案:在插入数据时,可能需要获取数据库生成的主键值并回填到Java对象中。这时可以使用标签来定义获取主键的方式。可以通过指定SQL语句、查询的结果类型、主键属性等来完成主键的回填。在插入操作执行之前,标签会先执行对应的SQL语句,获取主键值并回填到对象中。

14. MyBatis中的分页查询如何实现?
答案:MyBatis中提供了一种简单的分页查询方法。可以使用LIMIT关键字(MySQL)或ROWNUM关键字(Oracle)来指定查询结果的起始位置和数量。同时,配合使用标签和动态SQL,可以实现更复杂的分页查询。另外,还可以使用插件或自定义的分页拦截器来实现分页功能。









你可能感兴趣的:(error,java,mybatis,java,mysql,xml)