Exception in thread "main" org.apache.ibatis.exceptions.PersistenceException: ### Error building SqlSession. ### The error may exist in com/zzz/mapper/AdminInfoMapper.xml ### Cause: org.apache.ibatis.builder.BuilderException: Error parsing SQL Mapper Configuration. Cause: org.apache.ibatis.builder.BuilderException: Error parsing Mapper XML. The XML location is 'com/zzz/mapper/AdminInfoMapper.xml'. Cause: java.lang.IllegalArgumentException: Mapped Statements collection already contains value for com.zzz.mapper.AdminInfoMapper.. please check com/zzz/mapper/AdminInfoMapper.xml and com/zzz/mapper/AdminInfoMapper.xml at org.apache.ibatis.exceptions.ExceptionFactory.wrapException(ExceptionFactory.java:30) at org.apache.ibatis.session.SqlSessionFactoryBuilder.build(SqlSessionFactoryBuilder.java:80) at org.apache.ibatis.session.SqlSessionFactoryBuilder.build(SqlSessionFactoryBuilder.java:64) at com.zzz.test.MybatisDemo.main(MybatisDemo.java:19)
时间: 2023-12-06 18:05:18 浏览: 287
这个异常是由 MyBatis 框架引起的,它表明在构建 SqlSession 过程中存在问题。根据异常信息,问题可能出现在 `com/zzz/mapper/AdminInfoMapper.xml` 文件中。
首先,请检查 `com/zzz/mapper/AdminInfoMapper.xml` 文件是否存在。如果文件不存在,则需要创建该文件。
如果文件存在,可能有以下原因导致该异常:
1. `com/zzz/mapper/AdminInfoMapper.xml` 文件中的 SQL Mapper 配置有错误。请仔细检查该文件中的配置是否正确,特别是 SQL 语句是否正确。
2. `com/zzz/mapper/AdminInfoMapper.xml` 文件中的 Mapper XML 解析错误。请确保该文件的 XML 格式正确,没有语法错误。
3. `com.zzz.mapper.AdminInfoMapper` 已经在 Mapped Statements 集合中存在。这可能是因为在配置文件中重复定义了该 Mapper。请检查是否多次定义了该 Mapper,并确保只定义了一次。
希望这些信息能对你解决问题有所帮助!如果你有任何进一步的问题,请随时提问。
相关问题
org.apache.ibatis.exceptions.PersistenceException: ### Error building SqlSession. ### The error may exist in mapper/UserMapper.xml
org.apache.ibatis.exceptions.PersistenceException是MyBatis框架中的一个异常类,表示在构建SqlSession时发生了错误。这个异常通常与MyBatis的映射文件(mapper)有关。
在你提供的错误信息中,"The error may exist in mapper/UserMapper.xml"表示错误可能存在于UserMapper.xml这个映射文件中。这个文件是用来定义数据库操作的SQL语句和映射关系的。
可能导致这个异常的原因有很多,比如SQL语句错误、映射关系错误、数据库连接问题等。你可以检查以下几个方面来解决这个问题:
1. 检查UserMapper.xml文件中的SQL语句是否正确,包括语法、表名、列名等是否与数据库匹配。
2. 检查UserMapper.xml文件中的映射关系是否正确,比如属性名与数据库列名是否对应。
3. 检查数据库连接是否正常,确保数据库服务正常运行,并且连接配置正确。
4. 检查MyBatis的配置文件(比如mybatis-config.xml)中是否正确配置了映射文件的路径和数据库连接信息。
如果以上步骤都没有解决问题,你可以尝试查看具体的异常堆栈信息,以便更准确地定位问题所在。
package com.cs183.Test; import com.cs183.entity.Musician; import org.apache.ibatis.session.SqlSession; import org.apache.ibatis.session.SqlSessionFactory; import org.apache.ibatis.session.SqlSessionFactoryBuilder; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.InputStream; public class Test { public static void main(String[] args) throws FileNotFoundException { SqlSessionFactoryBuilder sqlSessionFactoryBuilder =new SqlSessionFactoryBuilder(); String resource = "D:\\project10\\_1\\src\\main\\java\\com\\cs183\\mapper\\MusicianMapper.xml"; InputStream inputStream = new FileInputStream(resource); SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream); SqlSession sqlSession= sqlSessionFactory.openSession(); String statement ="com/cs183/mapper/MusicianMapper.xml"; Musician musician=new Musician(2,"g","eason"); sqlSession.insert(statement,musician); sqlSession.commit(); } }解释为什么会有如此的报错Exception in thread "main" org.apache.ibatis.exceptions.PersistenceException: ### Error building SqlSession. ### The error may exist in SQL Mapper Configuration
这段代码涉及到 MyBatis 的配置与映射文件,报错信息显示在构建 SqlSession 时出现了错误。可能的原因是配置文件或映射文件中存在错误或缺失,导致 MyBatis 无法正确解析和映射数据库中的数据。建议检查配置文件和映射文件的路径和内容是否正确,并且确认数据库连接是否正常。另外,可以通过查看详细的错误信息来确定具体的问题和解决方案。
阅读全文
相关推荐





