昨晚加班的时候被队友拉着看一个mybatis的问题,耗费了我一个小时时间,最后差点没被我打死,实在是觉得滑稽,今天回家写下来跟大伙分享一下。

问题现象

Invalid bound statement (not found),看到这个错我当时就没兴趣了,我说你这不就是xml里没写xxxMapper.java方法对应的语句吗,这还有啥犹豫的呢,检查你的xml啊。

队友说,哥,我检查好多遍了,实在是找不出原因啊,这类问题常见的出错原因也就以下几类:

1.检查xml文件所在namespace名称是否和Mapper interface所在的包名一样;

2.mapper的XML配置路径是否正确

3.xml里没写xxxMapper.java方法对应的语句

4、5、6

。。。。。。

罢了罢了,出问题的时候都说自己没问题,眼见为实,我还是自己检查一遍。

差点打脸

我把常见的报错原因挨着检查了一遍,愣是没发现问题,场面一度尴尬,还debug了半天mabatis的源码,然并卵,最终我决定解压jar包看看里面究竟有没有那个xml文件。

乍一看似乎没有问题,xml是存在的,里面的<Select>也是存在的,停顿三秒钟。

水落石出

mybatis.mapper.upgrade这个目录,看起来有点奇怪,怎么没有层级。

“啊,这还有层级,我以为是目录的名字呢,我是这么建的”

搞半天你小子是建了个名字叫“mybatis.mapper.upgrade”的目录,你是怎么想的?

你的mapperLocations设置的是classpath:mybatis/mapper/upgrade*/*.xml,怎么想mybatis/mapper/upgrade这也是个多级目录啊?

“我参考enterprise那个服务弄的,enterprise里的mapper目录就叫mybatis.mapper.enterprise,也没有层级。"

那个是有层级的,只是你的idea设置了“Compact Middle Packages”导致展示成了mybatis.mapper.enterprise而已,你把"Compact Middle Packages"取消了再看。

“是的,取消了以后层级确实出来了"

到这问题已经水落石出,白白浪费一小时时间,也反映出队友的mybatis基础有待提升,这个操作着实有点滑稽。

你曾经遇到过队友的哪些神奇操作?

照片拍摄于西安大唐西市

案例分享-被*队友的mybatis蠢哭的一天的更多相关文章

  1. ArcGIS Add-in插件开发从0到1及实际案例分享

    同学做毕设,要求我帮着写个ArcGIS插件,实现功能为:遍历所有图斑,提取相邻图斑的公共边长及其他属性(包括相邻图斑的ID),链接到属性表中.搞定后在这里做个记录.本文分两大部分: ArcGIS插件开 ...

  2. Office 2010 KMS激活原理和案例分享

    Office 2010 KMS激活原理和案例分享     为了减低部署盗版(可能包含恶意软件.病毒和其他安全风险)的可能性,Office 2010面向企业客户推出了新的批量激活方式:KMS和MAK.这 ...

  3. Office 2010 KMS激活原理和案例分享 - Your Office Solution Here - Site Home - TechNet Blogs

    [作者:葛伟华.张玉工程师 ,  Office/Project支持团队, 微软亚太区全球技术支持中心 ] 为了减低部署盗版(可能包含恶意软件.病毒和其他安全风险)的可能性,Office 2010面向企 ...

  4. 老李案例分享:Weblogic性能优化案例

    老李案例分享:Weblogic性能优化案例 POPTEST的测试技术交流qq群:450192312 网站应用首页大小在130K左右,在之前的测试过程中,其百用户并发的平均响应能力在6.5秒,性能优化后 ...

  5. 性能调优案例分享:Mysql的cpu过高

    性能调优案例分享:Mysql的cpu过高   问题:一个系统,Mysql数据库,数据量变大之后.mysql的cpu占用率很高,一个测试端访问服务器时mysql的cpu占用率为15% ,6个测试端连服务 ...

  6. 老李案例分享:MAT分析应用程序服务出现内存溢出过程

    老李案例分享:MAT分析应用程序服务出现内存溢出过程   poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.在poptest的loa ...

  7. 老李案例分享:定位JAVA内存溢出

    老李案例分享:定位JAVA内存溢出   poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.在poptest的loadrunner的培 ...

  8. 性能调优案例分享:jvm crash的原因 1

    性能调优案例分享:jvm crash的原因   poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.如果对课程感兴趣,请大家咨询qq: ...

  9. [转载]DevOps在传统企业的落地实践及案例分享

    内容来源:2017年6月10日,优维科技高级解决方案架构师黄星玲在“DevOps&SRE 超越传统运维之道”进行<DevOps在传统企业的落地实践及案例分享>演讲分享.IT 大咖说 ...

  10. mysql的"双1设置"-数据安全的关键参数(案例分享)

    mysql的"双1验证"指的是innodb_flush_log_at_trx_commit和sync_binlog两个参数设置,这两个是是控制MySQL 磁盘写入策略以及数据安全性 ...

随机推荐

  1. Salesforce LWC学习(十二) Dependence Picklist实现

    本篇可参看: Salesforce LWC学习(六) @salesforce & lightning/ui*Api Reference salesforce零基础学习(八十七)Apex 中Pi ...

  2. 利用复杂数据类型(eg:对象)时,是直接调用属性快,还是先用变量填装使用快

    为了验证,我用时间戳去尝试 <!DOCTYPE html> <html lang="zh-CN"> <head>     <meta ch ...

  3. React的组件化/工程化开发(脚手架)

    脚手架: create-react-app 安装脚手架: $ npm i create-react-app -g 检查安装: $ npm create-react-app --version 新建项目 ...

  4. 容器云平台监控告警体系(三)—— 使用Prometheus Operator部署并管理Prometheus Server

    1.概述 Prometheus Operator是一种基于Kubernetes的应用程序,用于管理Prometheus实例和相关的监控组件.它是由CoreOS开发的开源工具,旨在简化Prometheu ...

  5. day118:MoFang:根据激活/未激活的状态分别显示树桩&种植植物&解锁树桩&化肥/修剪/浇水/宠物粮小图标数字的显示

    登录 1.根据激活状态和未激活状态分别显示树桩 2.用户使用植物道具进行果树种植 3.解锁树桩 4.化肥/修剪/浇水/宠物粮小图标显示 种植栏的功能实现 1. 客户端需要的植物相关参数: 总树桩数量, ...

  6. Java中ThreadLocal的用法和原理

    用法 隔离各个线程间的数据 避免线程内每个方法都进行传参,线程内的所有方法都可以直接获取到ThreadLocal中管理的对象. package com.example.test1.service; i ...

  7. Docker MariaDB配置主从复制

    编写主节点配置文件master.cnf: [client] # 默认字符集 default-character-set=utf8mb4 [mysqld] # 字符集 character-set-ser ...

  8. 25-tree shaking(树摇)

    const { resolve } = require('path'); const MiniCssExtractPlugin = require('mini-css-extract-plugin') ...

  9. 关于Java中对象的向上转型和向下转型

    什么是多态? 同一个类调用同一个方法会产生不同的影响/结果 这就是多态 public class Pet{ public void eat(){ System.out.println("Pe ...

  10. Godot 4.0 文件读取(C#)

    搞半天才弄明白Godot文件操作. Godot的文档总是试图让我使用自定义Resource来支持文件操作,但是我只需要读取纯文本. 读取纯文本 读取纯文本的方式如下: //Godot.FileAcce ...