首页 > 其他分享 >案例分享-被*队友的mybatis蠢哭的一天

案例分享-被*队友的mybatis蠢哭的一天

时间:2023-06-05 12:22:32浏览次数:39  
标签:xml mapper 层级 案例 upgrade 队友 mybatis

昨晚加班的时候被队友拉着看一个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基础有待提升,这个操作着实有点滑稽。

 

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

 

 照片拍摄于西安大唐西市

 

 

 

标签:xml,mapper,层级,案例,upgrade,队友,mybatis
From: https://www.cnblogs.com/chopper-poet/p/17455183.html

相关文章

  • 6.7 数组转置案例分析
    利用数组角标来置换操作classArrayUtil{//数组转置操作,左右排序颠倒操作;publicstaticvoidreverse(intdata[]){intcenter=data.length/2;inthead=0;inttail=data.length-1;for(intx=0;x<center;x......
  • 【获奖案例巡展】信创先锋之星——江西金发基于分布式数据库的互联网金融业务系统
    为表彰使用大数据、人工智能等基础软件为企业、行业或世界做出杰出贡献和巨大创新的标杆项目,星环科技自2021年推出了“新科技星力量”星环科技科技实践案例评选活动,旨在为各行业提供更多的优秀产品案例,彰显技术改变世界的力量,目前已成功举办两届,收到了来自各界的积极参与。 第二......
  • 基于MyBatis3.0.6的基本操作介绍
    评:通俗易懂每一个MyBatis的应用程序都以一个SqlSessionFactory对象的实例为核心。SqlSessionFactory本身是由SqlSessionFactoryBuilder创建的,一般而言,在一个应用中,一个数据库只会对应一个SqlSessionFactory,所以一般我们都把SqlSessionFactory定义成单例模......
  • mybatis-plus 批量插入方法saveBatch 踩坑
    1、问题描述由于我在数据库的一张表设置了两个主键,所以创建的实体我想都加上@TableId注解但是这样在mybatis-plus中一个实体只能有一个@TableId注解标识的主键2、然后我在批量插入时就遇到了问题,我使用的saveBatch方法进行的批量插入,在插入时实体的两个id我都设置值了,但是......
  • 5. Mybatis获取参数值的两种方式
    ‍MyBatis获取参数值的两种方式:​${}和#{}​${}的本质就是字符串拼接,#{}的本质就是占位符赋值${}使用字符串拼接的方式拼接sql,若为字符串类型或日期类型的字段进行赋值时,需要手动加单引号;但是#{}使用占位符赋值的方式拼接sql,此时为字符串类型或日期类型的字段进行赋值时......
  • 6. Mybatis的各种查询功能
    6.1、查询一个实体类对象‍/***根据用户id查询用户信息*@paramid*@return*/UsergetUserById(@Param("id")intid);<!--UsergetUserById(@Param("id")intid);--><selectid="getUserById"resultType="User">select*......
  • spring整合mybatisplus
    配置文件注解配置mapper扫描:@MapperScan("com.bjsxt.mybatisplus_lombok_swagger.mapper")pom<dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId></dependency><!--mybatisp......
  • Pyside2简单案例
    代码:fromPySide2.QtWidgetsimportQApplication,QMainWindow,QPushButton,QPlainTextEditapp=QApplication([])#创建QApplication对象,QApplication提供了整个图形界面程序的底层管理功能window=QMainWindow()#创建主窗口对象window.resize(800......
  • springboot整合mybatis
    整合mybatis基础配置启动类添加@MapperScan配置文件#=================================数据库相关配置====================================spring.datasource.driver-class-name=com.mysql.jdbc.Driverspring.datasource.url=jdbc:mysql://10.1.1.1:3306/db?useUnico......
  • aop操作-环绕通知获取数据的案例
    添加ResourcesService,ResourcesServiceImpl,ResourcesDao和ResourcesDaoImpl类publicinterfaceResourcesDao{booleanreadResources(Stringurl,Stringpassword);}@RepositorypublicclassResourcesDaoImplimplementsResourcesDao{publicbooleanreadRe......