Mybatis单表 | 多表 | 动态sql 查询

2023-05-16

一:单表增删改查xml

注:update不建议这么写sql,文章后有动态sql的写法,用到了trim代替了set,注意ifnull的情况

在这里插入图片描述
单表的sql映射,没什么好说的

二:多表的连接查询

引言:在多表之间如果存在外键关联需要建立DTO类来继承entity包下的实体类,下面是 小区:楼栋(1:n) 的demo,另外多表连接映射的时候需要将resultType改为resultMap
一个小区存在多个楼栋,所以属性有个List ldList;
一个楼栋只能属于一个小区,所以属性有Xq xq;

在这里插入图片描述

在这里插入图片描述

多表间嵌套查询xml(1:n)

sql要求:根据指定小区id找到小区+楼栋的全部信息,注(小区 : 楼栋 = 1:n) 用到了collection来存储楼栋详细信息List<Ld> ldList

在这里插入图片描述
在这里插入图片描述
这里就不提供等值连接查询了,不好用

多表间嵌套查询xml(n:1)

sql要求:根据具体楼栋id找到这个小区+楼栋的所有信息,注:(楼栋 : 小区 = n : 1)用到了association关联,

在这里插入图片描述

三:动态sql语句

引言:在我们学会了单表的增删改查后,单次增删已经无法满足我们了,想要直接通过一个方法对多个数据操作,就比如说你想删除一些id的数据,映射文件就对你传的idList(int[] 或Intger[] 都可以实现,但需要用collection控制别名)操作就可以了
解释:
foreach : 遍历list
item : list中的每个元素
open : 字符串连接的前缀
separator : 删除字符串中的字符 例如","
close:字符串连接的后缀

查找id在idList中的数据

> sql:select id,name from dept where id in(?,?,?..) 在这里插入图片描述
这里需要传一个idList所以Mapper接口中的方法这么写:
List<Dept> selectByIds(List idList);

批量add数据

sql:insert into dept(name,location) values(?,?),(?,?),(?,?)
在这里插入图片描述

批量delete数据

sql:delete from dept where id in (?,?,…) 在这里插入图片描述

update()的xml映射

解释:trim代替set可以防止在update的时候把已存在的信息给赋null了,这里用trim判断是否设置了更新的值才更新
prefix:前缀 suffixOverrides:删除后缀“,”,通常连用
test:实体类中的属性名
在这里插入图片描述

今天刚学完Mybatis,发个文章记录一下吧

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

Mybatis单表 | 多表 | 动态sql 查询 的相关文章

随机推荐

  • 下载yum源报错,无法解析mirrors.aliyun.com

    最近使用centOS安装Oracle xff0c 下载文件提示正在解析主机 mirrors aliyun com mirrors aliyun com 失败 xff1a 未知的名称或服务 解决这个问题简单 xff0c 需要在网络访问中改配置
  • 团队效率工具: 代码格式化之Clang-format

    介绍 平时团队进行合作的时候需要注意代码的格式 xff0c 虽然很难统一每个人的编码风格 xff0c 但是通过工具能够很好的管理代码格式 这里介绍下clang format xff0c 它是基于clang的一个命令行工具 xff0c 能够自
  • 关于头文件保护和变量重复定义的一点理解

    之前一直都有一个困惑 xff1a 既然头文件一般都有避免重复编译的预编译条件保护 xff0c 那为什么在头文件中定义全局变量就会出现重复定义的错误呢 xff1f 这个困惑持续了很久 xff0c 一直到最近才算大概理解 现记录于此 xff0c
  • YOLOv4剪枝【附代码】

    本项目只是负责把框架搭建起来 xff0c 没有进行重训练的微调或者去研究应该剪哪里比较好 xff0c 需要自己去研究 YOLOv4代码参考 xff1a Pytorch 搭建自己的YoloV4目标检测平台 xff08 Bubbliiiing
  • 爬虫 | Selenium库

    一 基础 1 定义 自动化测试工具 xff0c 支持多种浏览器 爬虫中主要用来解决JavaScript渲染的问题便捷地获取网站中动态加载的数据便捷实现模拟登录 2 使用流程 环境安装 xff1a pip install selenium下载
  • java李白打酒蓝桥杯

    题目 xff1a 李白打酒 话说大诗人李白 xff0c 一生好饮 幸好他从不开车 gt gt 一天 xff0c 他提着酒壶 xff0c 从家里出来 xff0c 酒壶中有酒2斗 他边走边唱 xff1a gt gt 无事街上走 xff0c 提壶
  • java求abc的全排列

    给定一个 没有重复 数字的序列 xff0c 返回其所有可能的全排列 示例 输入 abc 输出 xff1a abc acb bac bca cab cba 这里可以使用深度优先遍历 xff0c 遍历完a遍历b xff0c 最后遍历c java
  • java最大公共子序列

    题目 xff1a 求两个字符串的最大公共子序列 这里子序列和子串需要区分一下 xff0c 子序列不需要字符串里元素紧挨着 xff0c 但子串要求前后元素紧挨 xff0c 这里求子序列可以用递归法来做 代码如下 xff1a span clas
  • java矩阵乘法

    试题 基础练习 矩阵乘法 资源限制 时间限制 xff1a 1 0s 内存限制 xff1a 512 0MB 问题描述 给定一个N阶矩阵A xff0c 输出A的M次幂 xff08 M是非负整数 xff09 例如 xff1a 矩阵A为 1 2 3
  • java实现蓝桥杯单词分析

    单词分析 686 题目描述 小蓝正在学习一门神奇的语言 xff0c 这门语言中的单词都是由小写英文字母组 成 xff0c 有些单词很长 xff0c 远远超过正常英文单词的长度 小蓝学了很长时间也记不住一些单词 xff0c 他准备不再完全记忆
  • Java实现N皇后问题

    八皇后问题 xff08 英文 xff1a Eight queens xff09 xff0c 是由国际西洋棋棋手马克斯 贝瑟尔于1848年提出的问题 xff0c 是回溯算法的典型案例 问题表述为 xff1a 在8 8格的国际象棋上摆放8个皇后
  • C++求解整数划分问题(递归)

    整数划分问题是算法中的一个经典命题之一 xff0c 有关这个问题的讲述在讲解到递归时基本都将涉及 所谓整数划分 xff0c 是指把一个正整数n写成如下形式 xff1a n 61 m1 43 m2 43 43 mi xff08 其中mi为正整
  • java两个字符串的删除操作(动态规划)

    两个字符串的删除操作 给定两个单词 word1 和 word2 xff0c 找到使得 word1 和 word2 相同所需的最小步数 xff0c 每步可以删除任意一个字符串中的一个字符 xff08 力扣 xff09 示例 输入 sea ea
  • C/C++无向图的遍历(bfs和dfs)

    描述 简单介绍一下图 xff0c 图就是由一些小圆点 xff08 称为顶点 xff09 和连接这些小圆点的直线 xff08 称为边 xff09 组成的 例如下图的由五个顶点 xff08 编号1 2 3 4 5 xff09 和五条边 xff0
  • 树状数组c++/java版

    span class token keyword class span span class token class name Bit span span class token punctuation span span class to
  • 深度学习基础入门

    一 神经网络基础 线性函数 xff1a 从输入到输出的映射 损失函数 61 数据损失 43 正则化惩罚项 我们总是希望模型不要太复杂 xff0c 过拟合的模型是没用的 反向传播 加法门单元 xff1a 均等分配MAX门单元 xff1a 给最
  • 正则表达式匹配链接

    http tools jb51 net regex create reg
  • java选手算法竞赛模板

    span class token keyword import span span class token namespace java span class token punctuation span io span class tok
  • Mybatis框架文件模板

    jdbc properties mysql jdbc driver 61 com mysql jdbc Driver jdbc url 61 jdbc mysql 127 0 0 1 3306 mybatis characterEncodi
  • Mybatis单表 | 多表 | 动态sql 查询

    一 xff1a 单表增删改查xml 注 xff1a update不建议这么写sql 文章后有动态sql的写法 xff0c 用到了trim代替了set xff0c 注意ifnull的情况 单表的sql映射 xff0c 没什么好说的 二 xff