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>


问题完美解决!

 

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/327005.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

在ASP.NET Core下使用SignalR技术

一、前言 上次我们讲到过如何在ASP.NET Core中使用WebSocket,没有阅读过的朋友请参考 WebSocket in ASP.NET Core 文章 。这次的主角是SignalR它为我们提供了简化操作WebSocket的框架。 ASP .NET SignalR 是一个ASP.NET 下的类库&#xff0c;可以在ASP.NET 的Web项目中实现实时…

ClassLoader 详解及用途

转载自 ClassLoader 详解及用途 ClassLoader主要对类的请求提供服务&#xff0c;当JVM需要某类时&#xff0c;它根据名称向ClassLoader要求这个类&#xff0c;然后由ClassLoader返回这个类的class对象。 1.1 几个相关概念ClassLoader负责载入系统的所有Resources&#xff08;…

mybatis简单案例源码详细【注释全面】——前期准备

mybatis 是个什么东西&#xff0c;这里就不必说了&#xff0c;大家去网上搜搜看就行了&#xff0c;在这里我主要是分享一下最基本的增删改查案例以及配置信息&#xff0c;测试信息。 首先我们创建个数据库&#xff1a; /* SQLyog 企业版 - MySQL GUI v8.14 MySQL - 5.5.40 : …

用数组模拟队列的实现

package com.atguigu.queue;import jdk.nashorn.internal.ir.ReturnNode;import java.util.Scanner;/*** 创建人 wdl* 创建时间 2021/3/17* 描述*/ public class ArrayQueueDemo {public static void main(String[] args) {//测试一把//创建一个队列ArrayQueue queue new Arra…

时间格式转换2020-04-09T23:00:00.000+08:00

时间格式转换2020-04-09T23:00:00.00008:00 /*** 日期格式转换yyyy-MM-ddTHH:mm:ss.SSSXXX (yyyy-MM-ddTHH:mm:ss.SSSZ) TO yyyy-MM-dd HH:mm:ss* 2020-04-09T23:00:00.00008:00 TO 2020-04-09 23:00:00* throws ParseException*/public static String dealDateFormat(String…

云计算设计模式(三)——补偿交易模式

撤消由一系列步骤&#xff0c;它们共同限定了最终一致性操作中&#xff0c;如果一个或多个步骤失败执行的工作。按照最终一致性模型&#xff0c;业务实现复杂的业务流程和工作流的云托管的应用程序中很常见。 背景和问题 在云中运行的应用程序频繁修改数据。此数据可跨在各种地…

java反射 修改静态方法的值 setAccessible

转载自 java反射 修改静态方法的值 setAccessible 这几天闲来无事。在网上看了一个题目&#xff0c;相信大家都知道这个题目 static void change(String str){str"welcome";}public static void main(String[] args) {String str "123";change(str);Syste…

mybatis简单案例源码详细【注释全面】——实体层(User.java)

/** * Title: Users.java * Package org.entity * Description: TODO该方法的主要作用&#xff1a; * author A18ccms A18ccms_gmail_com * date 2017-10-5 下午6:53:06 * version V1.0 */ package org.entity;import java.util.Date;/** * * 项目名称&#xff1a;s…

API网关Ocelot 使用Polly 处理部分失败问题

在实现API Gateway过程中&#xff0c;另外一个需要考虑的问题就是部分失败。这个问题发生在分布式系统中当一个服务调用另外一个服务超时或者不可用的情况。API Gateway不应该被阻断并处于无限期等待下游服务的状态。但是&#xff0c;如何处理这种失败依赖于特定的场景和具体服…

数组模拟环形队列

思路分析 代码实现 package com.atguigu.queue;import java.util.Calendar; import java.util.Scanner;/*** 创建人 wdl* 创建时间 2021/3/17* 描述*/ public class CircleArrayQueueDemo {public static void main(String[] args) {//测试一把System.out.println("测试数…

Error:(1, 10) java: 需要class, interface或enum

https://blog.csdn.net/zf18234031156/article/details/103047649 反复做这一步&#xff0c;30多个文件一个一个弄&#xff0c;有乱码用txt打开&#xff0c;黏贴覆盖&#xff0c; 目录 1.前言 2.原因(UTF-8BOM造成) 3.如何解决 3.11使用Notepad&#xff0c;选择“格式--以…

彻底理解ThreadLocal

转载自 彻底理解ThreadLocal 先总述&#xff0c;后分析 深挖过threadLocal之后&#xff0c;一句话概括&#xff1a;Synchronized用于线程间的数据共享&#xff0c;而ThreadLocal则用于线程间的数据隔离。所以ThreadLocal的应用场合&#xff0c;最适合的是按线程多实例&#xff…

mybatis简单案例源码详细【注释全面】——实体层(Role.java)

package org.entity;import java.util.Date; /*** * * 项目名称&#xff1a;ssm_chop2 * 类名称&#xff1a;Role * 类描述&#xff1a; 角色表的实体类 * 创建人&#xff1a;Mu Xiongxiong * 创建时间&#xff1a;2017-10-7 上午10:01:31 * 修改人&#xff…

IDEA导入Eclipse项目

https://blog.csdn.net/zeal9s/article/details/90690524 背景&#xff1a;用习惯了idea再去用eclipse实在用的不习惯&#xff0c;于是将老的eclipse项目导入到eclipse&#xff0c;网上有很多教程&#xff0c;看了很多博客都不行&#xff0c;一直报错&#xff0c;各种报错&…

云计算设计模式(四)——消费者的竞争模式

允许多个并发用户处理在同一个通讯通道接收的消息。这种模式使系统能够同时处理多个邮件&#xff0c;以优化吞吐量&#xff0c;提高可扩展性和可用性&#xff0c;以及平衡工作负载。 背景和问题 在云中运行的应用程序&#xff0c;可以预计&#xff0c;以处理大量的请求。而不是…

带头单链表有序版

package com.atguigu.linkedlist;/*** 创建人 wdl* 创建时间 2021/3/17* 描述*/ public class SingleLinkedListDemo {public static void main(String[] args) {//进行测试//先创建节点HeroNode hearo1 new HeroNode(1, "宋江", "及时雨");HeroNode hear…

mybatis简单案例源码详细【注释全面】——Dao层接口(UserMapper.java)

/** * Title: IUserDao.java * Package org.dao * Description: TODO该方法的主要作用&#xff1a; * author A18ccms A18ccms_gmail_com * date 2017-10-5 下午8:59:34 * version V1.0 */ package org.dao;import java.util.Date; import java.util.List; import java.u…

java笔记--关于线程同步(7种同步方式)

转载自 java笔记--关于线程同步&#xff08;7种同步方式&#xff09; 为何要使用同步&#xff1f; java允许多线程并发控制&#xff0c;当多个线程同时操作一个可共享的资源变量时&#xff08;如数据的增删改查&#xff09;&#xff0c; 将会导致数据不准确&#xf…

前后端分离趋势谈

最近已经不止一个人和我提起过vue了&#xff0c;在我的前端印象中&#xff0c;我还停留在smarty渲染模版&#xff0c;jquery做js处理。学了一晚上&#xff0c;对现在这种工程化webpack打包生成html&#xff0c;js&#xff0c;css的生产方式越来越有兴趣了。工作年限摆在这里的好…