mybatis报错:java.lang.IllegalArgumentException: Mapped Statements collection does not contain

简介: mybatis报错:java.lang.IllegalArgumentException: Mapped Statements collection does not contain

在做mybatis案例的时候发现了一个问题,报错如下:

org.apache.ibatis.exceptions.PersistenceException:

### Error querying database.  Cause: java.lang.IllegalArgumentException: Mapped Statements collection does not contain value for org.dao.UserMapper.count
### Cause: java.lang.IllegalArgumentException: Mapped Statements collection does not contain value for
org.dao.UserMapper.count

   at org.apache.ibatis.exceptions.ExceptionFactory.wrapException(ExceptionFactory.java:23)

   at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:107)

   at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:98)

   at org.apache.ibatis.session.defaults.DefaultSqlSession.selectOne(DefaultSqlSession.java:62)

   at org.apache.ibatis.session.defaults.DefaultSqlSession.selectOne(DefaultSqlSession.java:57)

   at org.test.UserMapperTest.test(UserMapperTest.java:55)

   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 org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44)

   at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)

   at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41)

   at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)

   at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)

   at org.junit.runners.BlockJUnit4ClassRunner.runNotIgnored(BlockJUnit4ClassRunner.java:79)

   at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:71)

   at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:49)

   at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193)

   at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52)

   at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191)

   at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42)

   at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184)

   at org.junit.runners.ParentRunner.run(ParentRunner.java:236)

   at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50)

   at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)

   at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)

   at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)

   at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)

   at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)

Caused by: java.lang.IllegalArgumentException: Mapped Statements collection does not contain value for org.dao.UserMapper.count

   at org.apache.ibatis.session.Configuration$StrictMap.get(Configuration.java:775)

   at org.apache.ibatis.session.Configuration.getMappedStatement(Configuration.java:615)

   at org.apache.ibatis.session.Configuration.getMappedStatement(Configuration.java:608)

   at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:103)

   ... 28 more


首先一看到错,对于英语不好的我来说,脑海里瞬间闪过一句话:TMD,这是什么鬼东西。。。然后仔细的看了看,看到了个关键字collection ,于是想想是不是没有连接上数据库,错误原因要么在数据库资源文件里面,要么就在UserMapper.xml里面。回去看了看资源文件:

driver=com.mysql.jdbc.Driver

url=jdbc\:mysql\://localhost\:3306/smbms?useUnicode\=true&characterEncoding\=utf-8

user=root

password=123


没毛病,那就是在UserMapper.xml里面,于是跳转到UserMapper.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="org.dao.UserMapper.xml">
  <!-- 查询用户表的记录数 -->
  <select id="count" resultType="int">
    select count(*) from user
  </select>
</mapper>

注意看着一行代码:

 

 

<mapper namespace="org.dao.UserMapper.xml">

我迷糊的居然在后面加了个.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="org.dao.UserMapper">
  <!-- 查询用户表的记录数 -->
  <select id="count" resultType="int">
    select count(*) from user
  </select>
</mapper>

问题完美解决!

 

 

 

相关文章
|
7天前
|
Java Maven
java项目中jar启动执行日志报错:no main manifest attribute, in /www/wwwroot/snow-server/z-server.jar-jar打包的大小明显小于正常大小如何解决
在Java项目中,启动jar包时遇到“no main manifest attribute”错误,且打包大小明显偏小。常见原因包括:1) Maven配置中跳过主程序打包;2) 缺少Manifest文件或Main-Class属性。解决方案如下:
java项目中jar启动执行日志报错:no main manifest attribute, in /www/wwwroot/snow-server/z-server.jar-jar打包的大小明显小于正常大小如何解决
|
2月前
|
JSON Java 关系型数据库
Java更新数据库报错:Data truncation: Cannot create a JSON value from a string with CHARACTER SET 'binary'.
在Java中,使用mybatis-plus更新实体类对象到mysql,其中一个字段对应数据库中json数据类型,更新时报错:Data truncation: Cannot create a JSON value from a string with CHARACTER SET 'binary'.
118 4
Java更新数据库报错:Data truncation: Cannot create a JSON value from a string with CHARACTER SET 'binary'.
|
2月前
|
分布式计算 Java MaxCompute
ODPS MR节点跑graph连通分量计算代码报错java heap space如何解决
任务启动命令:jar -resources odps-graph-connect-family-2.0-SNAPSHOT.jar -classpath ./odps-graph-connect-family-2.0-SNAPSHOT.jar ConnectFamily 若是设置参数该如何设置
|
2月前
|
安全 小程序 Java
Java“AccessControlException”报错解决
Java中的“AccessControlException”通常发生在尝试访问受安全策略限制的资源时。解决方法包括:1. 检查安全策略文件(java.policy)配置;2. 确保代码具有足够的权限;3. 调整JVM启动参数以放宽安全限制。
186 1
|
4月前
|
SQL XML Java
mybatis复习04高级查询 一对多,多对一的映射处理,collection和association标签的使用
文章介绍了MyBatis中高级查询的一对多和多对一映射处理,包括创建数据库表、抽象对应的实体类、使用resultMap中的association和collection标签进行映射处理,以及如何实现级联查询和分步查询。此外,还补充了延迟加载的设置和用法。
mybatis复习04高级查询 一对多,多对一的映射处理,collection和association标签的使用
|
4月前
|
消息中间件 分布式计算 Java
Linux环境下 java程序提交spark任务到Yarn报错
Linux环境下 java程序提交spark任务到Yarn报错
54 5
|
4月前
|
域名解析 分布式计算 网络协议
java遍历hdfs路径信息,报错EOFException
java遍历hdfs路径信息,报错EOFException
44 3
|
4月前
|
缓存 Java Linux
java操作hbase报错:KeeperErrorCode=NoNode for /hbase-unsecure/master
java操作hbase报错:KeeperErrorCode=NoNode for /hbase-unsecure/master
246 2
|
4月前
|
Java
java服务调用报错503
java服务调用报错503
39 2
|
4月前
|
JSON Java 数据格式
java调用服务报错400
java调用服务报错400
80 2