后端之路第三站(Mybatis)——XML文件操作sql

一、XML映射文件是啥

前面我们学过了在Mapper接口用@注解的方式来操作sql语句

那么XML映射文件就另一种操作sql语句的方法

为什么还要有这么个玩意?

我简单说就是:如果有的sql特别复杂的话,比如需要【动态sql】的话,就得用到XML映射文件(这里的【动态sql】不是简单动态传几个参数,而是动态拼接where后面的条件......我下一篇会讲到);

当然@注解也是一种很方便的方法,没有哪个更好,你想用哪个就用哪个,只要记住【动态sql】要用XML映射文件

二、怎么用

1、规范要求

配置XML文件得规范如下:必须按这个要求一步一步来

2、配置同包同名文件

首先来到【resources】资源包,右键新建一个跟放我们Mapper目录的包的【同名字包】

但是注意了!!!

之前我们创包为了图方便,直接新建一个【类】或者一个【接口】的同时,通过xxx.xxx.xxx这样的形式把各级的目录都创建好了

但是现在这里在这个目录起名的时候不能这样,因为这样只会生成一个叫《xxx.xxx.xxx》的文件夹

要采用 “/” 的路径分割法,xxx/xxx/xxx

接着就到这个刚创建好的包里,新建XML文件,也是跟我们的Mapper里的接口要一样名

3、XML文件配置

那么XML文件创建好之后,因为XML文件需要有一些约束,所以我们需要手动配到文件里

 先把我们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">

出自于Mybatis官网:入门_MyBatis中文网

然后我们就可在下面写一个双标签<mapper></mapper>,这里面就是执行所有sql语句操作的代码区

接下来我们要在<mapper>的namespace命名空间里绑定上是哪一个接口类名

那接口类名去哪看?找到你要对于的接口,右键它的接口名,选“复制引用”

中文

英文

ok,现在<mapper></mapper>里可以执行sql语句操作了

4、怎么写sql语句?

要做什么操作,你就选什么标签

然后在里面写上对应sql的语句就行,其实跟@注解(sql语句)差不多,不过这些sql操作标签都有一个id属性,就是用来绑定原先对应注解的方法的方法名

原先的@注解就可以注释掉了

如果像select这种操作,方法需要有返回值的,还得带上一个resultType,绑定的是【返回单条记录所封装的类型】,比如返回全部员工信息List<Emp>,那么单条信息就是Emp(全类名);加入返回的是一个员工对象Emp,那单条信息也就是Emp(全类名);

那么注意,不单单是一个类名就行,是全类名,全类名去到类的定义处,【复制引用】即可获得

总结:这两种想用哪个用哪个,儿子对应关系如下图

三、对应的高效插件:MyabtisX

简单说,MybatisX就是能快速帮你跳到【对应某方法的sql语句的地方】,或者跳到【对应某sql语句的方法的地方】

点一下就跳转了

还有一个好处,你在Mapper接口写好一个方法后,只要你的方法名里含有:select、update、delete、insert......这些sql操作的语句,那么摁下【Alt + 回车】就会有这么一个功能【Generrate statement】,点击会让你选择你要生成的对应的sql操作,选择一个就可以自动到XML文件里生成对应的sql代码区

感觉这一章其实没啥用,就简短写了

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

数据可视化期末总结

期末考试重点&#xff08;世界上最没意义的事情&#xff09; 选择 p8 数据可视化的标准&#xff1a; 实用、完整、真实、艺术、交互&#xff08;性&#xff09; p21 色彩三属性 色相、饱和度、亮度 p23 视觉通道的类型&#xff1a; 记得色调是定性 p39 散点图&#xff08;二维…

GIT-LFS使用

0.前言 目前git仓库有很多很大的文件需要管理&#xff0c;但是直接上传&#xff0c;每次clone的文件太大&#xff0c;所有准备使用git-lfs解决。 1、下载和安装 Git LFS 1.1、直接下载二进制包&#xff1a; Releases git-lfs/git-lfs GitHub 安装 Git LFS sudo rpm -ivh…

Leica Cyclone 3DR2024 一款功能强大的点云建模软件下载License获取

Leica Cyclone 3DR 2024 是一款功能强大的点云建模软件&#xff0c;使用旨在为用户提供全面的点云管理、自动化的点云分析&#xff0c;结合强大的建模&#xff0c;在一个直观友好的环境中&#xff0c;专注的完成挑战&#xff0c;提高生产力&#xff0c;轻松创建并交付专业的成果…

杨幂跨界学术圈:内容营销专家刘鑫炜带你了解核心期刊的学术奥秘

近日&#xff0c;知名艺人杨幂在权威期刊《中国广播电视学刊》上发表了一篇名为《浅谈影视剧中演员创作习惯——以电视剧<哈尔滨一九四四>为例》的学术论文&#xff0c;此举在学术界和娱乐圈均引起了广泛关注。该期刊不仅享有极高的声誉&#xff0c;还同时被北大中文核心…

Data-Driven Reinforcement Learning for Robotic Manipulation

意思是 不同的任务以及机器人都有单独的数据和模型 未来需要整合 一个大的数据集包含所有的 然后训练一个大模型 以后具体的任务只需要针对这个模型进行微调 challenge bootstrapping with large data 2 3 4 高清图补充

【C++】using namespace std 到底什么意思

&#x1f4e2;博客主页&#xff1a;https://blog.csdn.net/2301_779549673 &#x1f4e2;欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1f4dd; 如有错误敬请指正&#xff01; &#x1f4e2;本文作为 JohnKi 的学习笔记&#xff0c;引用了部分大佬的案例 &#x1f4e2;未来很长&a…

【SGX系列教程】(二)第一个 SGX 程序: HelloWorld,linux下运行

文章目录 0. SGX基础原理分析一.准备工作1.1 前提条件1.2 SGX IDE1.3 基本原理 二.程序设计2.1 目录结构2.2 源码设计2.2.1 Encalve/Enclave.edl:Enclave Description Language2.2.2 Enclave/Enclave.lds: Enclave linker script2.2.3 Enclave/Enclave.config.xml: Enclave 配置…

ctfshow-web入门-命令执行(web59-web65)

目录 1、web59 2、web60 3、web61 4、web62 5、web63 6、web64 7、web65 都是使用 highlight_file 或者 show_source 1、web59 直接用上一题的 payload&#xff1a; cshow_source(flag.php); 拿到 flag&#xff1a;ctfshow{9e058a62-f37d-425e-9696-43387b0b3629} 2、w…

MathType7.6专业数学公式编辑器!与Word、PPT等常用软件无缝对接。

MathType&#xff0c;一款专业的数学公式编辑器&#xff0c;以其强大的功能和友好的用户界面&#xff0c;在科研、教学等领域广受欢迎。它支持丰富的数学符号和公式模板&#xff0c;满足不同用户的需求。同时&#xff0c;MathType还提供了多种输出格式&#xff0c;方便与其他文…

3ds Max导出fbx贴图问题简单记录

1.前言 工作中发现3ds Max导出的fbx在其它软件&#xff08;Autodesk viewer&#xff0c;blender&#xff0c;navisworks&#xff0c;FBXReview等&#xff09;中丢失了部分贴图&#xff0c;但导出的fbx用3ds Max打开却正常显示。 fbx格式使用范围较广&#xff0c;很多常见的三…

如何用Go语言,实现基于宏系统的解释器?

目录 一、Go语言介绍二、什么是宏系统三、什么是解释器四、如何用Go语言实现一个基于宏系统的解释器&#xff1f; 一、Go语言介绍 Go语言&#xff0c;又称为Golang&#xff0c;是一种由谷歌公司开发并开源的编程语言。Go语言的设计目标是提高程序员的生产力&#xff0c;同时具…

树莓派开发之文件传输

文章目录 一、简介使用U盘传输文件使用SD卡传输文件使用Xftp 7传输文件 二、 总结 一、简介 在树莓派开发中经常会用到文件传输&#xff0c;下面介绍几种树莓派文件传输的几种方法。 使用U盘传输文件 &#xff08;1&#xff09;复制所需传输文件到U盘 &#xff08;2&#…

详细介绍MySQL的索引(上)

索引 索引概述 索引(index)是帮助MySQL高效获取数据的数据结构(有序)。在数据之外&#xff0c;数据库系统还维护着满足特定查找算法的数据结构&#xff0c;这些数据结构以某种方式引用(指向数据&#xff0c;这样就可以在这些数据结构上实现高级查找算法&#xff0c;这种数据结…

【计算机图形学】期末考试知识点汇总(上)

文章目录 视频教程第一章 计算机图形学概述计算机图形学的定义计算机图形学的应用计算机图形学 vs 图像处理 vs模式识别图形显示器的发展及工作原理理解三维渲染管线 第二章 基本图元的扫描转换扫描转换直线的扫描转换DDA算法Bresenham算法中点画线算法圆的扫描转换中点画圆算法…

json文件 增删查改

默认收藏夹 qt操作json格式文件... 这个人的 写的很好 我的demo全是抄他的 抄了就能用 —————————— 下次有空把我的demo 传上来 在E盘的demo文件夹 json什么名字

小迪安全v2023笔记 1-18

小迪安全v2023笔记 1-18 棱角社区 文章目录 1. 基础入门1. 正向shell与反向shell2. web应用3. 抓包&#xff0c;封包&#xff0c;协议&#xff0c;app&#xff0c;小程序&#xff0c;pc应用&#xff0c;web应用 2. 信息打点1. 常见信息获取2. 文件泄露3. 常见阻碍4. CDN绕过&a…

二叉树第二期:堆的实现与应用

若对树与二叉树的相关概念&#xff0c;不太熟悉的同学&#xff0c;可移置上一期博客 链接&#xff1a;二叉树第一期&#xff1a;树与二叉树的概念-CSDN博客 本博客目标&#xff1a;对二叉树的顺序结构&#xff0c;进行深入且具体的讲解&#xff0c;同时学习二叉树顺序结构的应用…

电子电路学习笔记(3)三极管

部分内容参考链接&#xff1a; 电子电路学习笔记&#xff08;5&#xff09;——三极管_三极管 箭头-CSDN博客 模拟电子技术基础笔记&#xff08;4&#xff09;——晶体三极管_集电结的单向导电性-CSDN博客 硬件基本功-36-三极管Ib电流如何控制Ic电流_哔哩哔哩_bilibili 部分…

栈的实现

栈 1.栈的概念及结构 栈是一种特殊的线性表&#xff0c;其只允许在固定的一端插入和删除元素。进行插入和删除的一端称为栈顶&#xff0c;另一端称为栈底。栈中的元素支持先进后出的原则。 2.栈的实现 栈的实现一般使用数组和链表&#xff0c;相对而言使用数组更优一些&…

SpringCloud Alibaba Seata2.0基础入门与安装

官网地址&#xff1a;https://seata.apache.org/zh-cn/ GitHub下载地址&#xff1a;https://github.com/apache/incubator-seata/releases 本文这里下载的是seata2.0.0版本。 【1】概述 ① Seata是什么 Simple Extensible Autonomous Transaction Architecture&#xff0c…