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

news/2024/7/7 20:47:36 标签: mybatis, java, spring boot, 后端

一、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代码区

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


http://www.niftyadmin.cn/n/5535335.html

相关文章

013、MongoDB常用操作命令与高级特性深度解析

目录 MongoDB常用操作命令与高级特性深度解析 1. 数据库操作的深入探讨 1.1 数据库管理 1.1.1 数据库统计信息 1.1.2 数据库修复 1.1.3 数据库用户管理 1.2 数据库事务 2. 集合操作的高级特性 2.1 固定集合(Capped Collections) 2.2 集合验证(Schema Validation) 2.…

西门子设备对接 C#示例

要与西门子设备进行对接&#xff0c;可以使用Siemens提供的S7.Net库来进行PLC&#xff08;可编程逻辑控制器&#xff09;的通信。以下是一个简单的C#代码示例&#xff0c;展示如何使用S7.Net库与西门子PLC进行连接和读写数据。 首先&#xff0c;确保你已经安装了S7.Net库。你可…

2024最新!将mysql的数据导入到Solr

Solr导入mysql的数据 如何安装导入数据前准备配置Solr的Jar包以及Mysql驱动包1.1、将solr-8.11.3\dist下的两个包进行移动1.2、将mysql-connect包也移动到该位置1.3、重启Solr项目 配置xml2.1、第一步我们需要创建核心2.2、第二步修改xml(这里是结合19年的教程)2.3、 创建data-…

独一无二的设计模式——单例模式(Java实现)

1. 引言 亲爱的读者们&#xff0c;欢迎来到我们的设计模式专题&#xff0c;今天的讲解的设计模式&#xff0c;还是单例模式哦&#xff01;上次讲解的单例模式是基于Python实现&#xff08;独一无二的设计模式——单例模式&#xff08;python实现&#xff09;&#xff09;的&am…

基于Hadoop平台的电信客服数据的处理与分析③项目开发:搭建基于Hadoop的全分布式集群---任务7:格式化并启动Hadoop集群

任务描述 任务内容为格式化并启动Hadoop集群&#xff0c;并修复可能出现的Bug。 任务指导 Hadoop集群启动前需要在NameNode上格式化元数据&#xff0c;成功格式化后才能启动Hadoop的HDFS和YARN。 格式化启动Hadoop集群的步骤如下&#xff1a; 1. 在NameNode&#xff08;ma…

【Python机器学习】算法链与管道——通用的管道接口

Pipeline类补单可以用于预处理和分类&#xff0c;实际上还可以将任意数量的估计器连接在一起。例如&#xff0c;我们可以构建一个包含特征提取、特征选择、缩放和分类的管道&#xff0c;总共有4个步骤。同样的&#xff0c;最后一步可以用聚类或回归代替。 对于管道中估计器的唯…

基于 Gunicorn + Flask + Docker 的模型高并发部署

在现代 Web 应用程序中&#xff0c;处理高并发请求是一个常见且重要的需求。本文将介绍如何使用 Gunicorn、Flask 和 Docker 来实现模型的高并发部署。我们将从环境设置、代码实现、Docker 镜像构建及部署等方面进行详细讲解。 一、环境设置 1. 安装 Flask 首先&#xff0c;…

LLaVA1.5训练数据和时间分析

LLaVA的PT+SFT训练_llava sft-CSDN博客文章浏览阅读379次。这个阶段,使用8个A100(80G)训练LLaVA-v1.5-13B大约需要20h。全量微调,非lora跑不起来啊,以前一直用swift,llama-factory这种框架式的代码库,但用原作者开源的代码也是有很多好处的。在这个阶段,使用 8 个 A100(…