SSM之mybatis:修改了Mybatis的xml文件不生效

2023-10-27

这两天写一个项目是,修改了下mybatis的xml文件中的一个sql语句,结果发现修改后的xml文件始终不生效。情况是这样的:

一开始我的语句

 <select id="selectAll" resultMap="BaseResultMap" >
    select category, ctime, annotation
    from category
    </select>

修改后(错误的修改)为

 <select id="selectAll" resultMap="BaseResultMap" >
    select category, ctime, annotation
    from category 
    order by
    </select>

然后我就直接运行了,提示报错

于是我立马修改成原来第一个图的代码,重新运行,结果还是报错,提示和上图一模一样。

去debug打印sql语句后,显示

“Preparing: select category, ctime, annotation from category ORDER BY ”

于是懵逼了,发现怎么修改都没有用,一直报一样的错误。

此时思考:为什么修改没用,一直sql语句会有“order by”,

1.缓存为清理,重启试试?

2.是不是xml文件根本就没读取到?映射有问题?

对第一个猜想,进行清理缓存,重启idea,发现,问题依然存在。

第二个猜想,查阅资料,查看xml配置文件,发现问题所在:我没有配置mapper映射文件的路径,所以每次mybatis的mapper.xml文件都会被漏掉,运行时,始终读取最初的xml。

如何配置mapper映射文件的路径:

1.在配置sqlSessionFactoryBean是,加上

<property name="mapperLocations" value="classpath:mapper/*Mapper.xml"/>,即将映射文件放到resources文件夹下
<bean id="sqlSessionFactoryBean" class="org.mybatis.spring.SqlSessionFactoryBean">
        <property name="dataSource" ref="dataSource"/>
        <!-- 核心配置文件的位置 -->
        <property name="configLocation" value="classpath:sqlMapConfig.xml"/>
            <!--配置mapper映射文件的路径,必须放在resources文件夹下,否则mybatis的mapper.xml文件都会被漏掉。或者在pom.xml配置-->
        <property name="mapperLocations" value="classpath:mapper/*Mapper.xml"/>
    </bean>

2.在pom.xml配置,这个方法大家可以自行去网上搜索,给个spring-boot中使用这个方法的例子链接,大家可以看这个

https://segmentfault.com/q/1010000013418822

总结:通过上面的讲解,我们可以知道。在SSM中,对mybatis的xml文件,一定要记得配置它的映射路径,方法有两种(看上面)。一旦没有配置,那么mapper.xml文件都会被遗漏,造成修改无法成功或者其他问题(比如你把这个xml文件删除,数据库照样能读取数据之类的)。所以,以后凡是mapper.xml文件里面产生问题,第一想法,看映射路径是否正确

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SSM之mybatis:修改了Mybatis的xml文件不生效 的相关文章

随机推荐

  • 编程tips

    一 是XOR 是不等于 if a b 和if a b 对对于聪明的编译器来说效率应该是一样的 二 与 的优先级比 高一级 表达式的结合次序取决于表达式中各种运算符的优先级 优先级从上到下依次递减 最上面具有最高的优先级 逗号操作符具有最低的
  • Spring中AOP

    1 概述 AOP 面向切面编程 将程序中的非业务代码抽取 在不修改业务代码的前提下 为其添加功能 功能增强 面向切面的编程思想底层是为目标创建一个代理对象 让代理对象调用目标类中方法 在代理对象调用时 可以额外的调用其他的方法 增强的方法
  • hduoj 2011

    多项式求和 Problem Description 多项式的描述如下 1 1 2 1 3 1 4 1 5 1 6 现在请你求出该多项式的前n项的和 Input 输入数据由2行组成 首先是一个正整数m m lt 100 表示测试实例的个数 第
  • Linq to Sql : 并发冲突及处理策略

    0 并发冲突的示例 单用户的系统现在应该比较罕见了 一般系统都会有很多用户在同时进行操作 在多用户系统中 涉及到的一个普遍问题 当多个用户 同时 更新 修改或者删除 同一条记录时 该如何更新呢 下图展示了开放式并发冲突的一个示例 假设数据库
  • OpenGL片段列表渲染:实现流畅的大规模场景渲染

    OpenGL片段列表渲染 实现流畅的大规模场景渲染 在实时渲染领域 处理大规模场景是一项重要的任务 然而 传统的渲染方式存在着效率低下 内存消耗大等问题 为了解决这些问题 最近的研究中提出了使用片段列表进行场景渲染的方法 本文将介绍如何使用
  • python批量写入数据

    提示 文章写完后 目录可以自动生成 如何生成可参考右边的帮助文档 python批量写入文件内容 前言 一 使用步骤 1 引入库 前言 提示 这里可以添加本文要记录的大概内容 python批量写入文件内容 提示 以下是本篇文章正文内容 下面案
  • 数字后端——信号完整性分析

    随着光刻和集成电路制造工艺的不断进步 以及芯片的特征尺寸从深亚微米到纳米的迅速采用 人们一方面因为芯片的功能极大提高而受益 另一方面 当逻辑门的沟道长度减小时 门的开关时间会减小 这意味着输出驱动器上升时间变短 或者说时钟频率可以更高 同时
  • Web和Servlet

    Web web开发概述 学习web开发 需要先安装一台web服务器 将开发好的web项目部署在web服务器中供外界访问 web开发环境搭建 Web服务器是指驻留于英特网上某种类型计算机的程序 可以向浏览器等Web客户端提供文档 也可以放置网
  • 万亿级KV存储架构与实践

    一 KV 存储发展历程 我们第一代的分布式 KV 存储如下图左侧的架构所示 相信很多公司都经历过这个阶段 在客户端内做一致性哈希 在后端部署很多的 Memcached 实例 这样就实现了最基本的 KV 存储分布式设计 但这样的设计存在很明显
  • JavaScript 实现 -- 希尔排序

    文章目录 希尔排序 代码实现 时间复杂度和稳定性 希尔排序 希尔排序是插入排序的一种 又称 缩小增量排序 Diminishing Increment Sort 是插入排序的一种更高效的改进版本 希尔排序实际上就是分组的插入排序 希尔排序以步
  • Java图片Base64格式压缩大小至40k之内

    Maven中用到的依赖
  • Docker安装Portainer

    前言 Portainer是一个可视化的容器镜像的图形管理工具 利用Portainer可以轻松构建 管理和维护Docker环境 而且完全免费 基于容器化的安装方式 方便高效部署 Docker安装 拉取镜像 docker pull portai
  • Vue2+Vue3

    文章目录 Vue快速上手 Vue是什么 第一个Vue程序 插值表达式 Vue核心特性 响应式 Vue指令 v html v show 与 v if v else 与 v else if v on v bind v for v model 指
  • ElasticSearch一:简介、概念、安装、Kibana客户端安装使用、IK分词器、数据管理

    目录 一 ElasticSearch简介 ElasticSearch 简称ES 应用场景 ElasticSearch与Lucene的关系 哪些公司在使用Elasticsearch ES vs Solr比较 总结 ES vs 关系型数据库 L
  • VS2015 设置了包含路径(包含目录),还是提示说打不开 .h 头文件

    项目 属性 VC 目录 注意上方的平台是否选错 设置后再设置包含路径 另一个原因 有时代码从别的地方复制过来的时候 因为字符编码的问题 一样会造成很多未定义的问题 本人亲测 第一个方法很有用
  • jmeter 接口快速创建

    通过cURL命令创建测试计划 从浏览器获取接口 从postman获取接口
  • postgresql 创建自增索引(序列)、以及索引(序列)相关操作

    PostgreSQL 没有自增索引的概念 需要通过序列来完成相关操作 PostgreSQL 使用序列来标识字段的自增长 数据类型有 smallserial serial 和 bigserial 这些属性类似于 MySQL 数据库支持的 AU
  • java 的循环输入

    书本7 3 计算数字出现的次数
  • 在MFC中怎样添加一个非模态的对话框

    添加一个非模态对话框1 点击菜单 插入 资源 选择Dialog 点击新建 2 编辑对话框 添加一些控件什么的 3 双击对话框或者打开ClassWizard 为对话框建立一个类 如CMyDialog 4 在 view cpp的开头添加新建立的
  • SSM之mybatis:修改了Mybatis的xml文件不生效

    这两天写一个项目是 修改了下mybatis的xml文件中的一个sql语句 结果发现修改后的xml文件始终不生效 情况是这样的 一开始我的语句