位置: IT常识 - 正文

mybatis常用标签(refid、foreach、trim)(mybatis isnotempty标签)

发布时间:2024-01-17
mybatis常用标签(refid、foreach、trim) 1.问题来源

推荐整理分享mybatis常用标签(refid、foreach、trim)(mybatis isnotempty标签),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:mybatis常用标签有哪些,mybatis常用标签有哪些,mybatisforeach标签,mybatisforeach标签,mybatis常用的标签,mybatisbind标签,mybatiswhen标签,mybatiswhen标签,内容如对您有帮助,希望把文章链接给更多的朋友!

在之前查询数据库的时候基本都是使用

select * from student;SELECT name, prod_price FROM products;

但是很多时候我们并不需要查询数据库中的全部字段,直接查全部字段会降低效率,同时很多字段的组合是经常被使用到的,每次都单独写出来很麻烦

2.Mybatis解决 对于上述问题,Mybatis的映射文件中为我们引入了<include refid="Base_Column_List" /> ,意思就是固定几个需要查询的字段,在sql语句中不需要写具体的字段了。具体使用如下:

<sql id="Base_Column_List"> id, username, password, email, phone, question, answer, role, create_time, update_time</sql><select id="selectByUsername" parameterType="java.lang.String" resultMap="BaseResultMap"> select <include refid="Base_Column_List" /> from mall_user where username = #{username,jdbcType=VARCHAR}</select>

2、mybatis动态sql中foreach标签的使用

foreach标签主要用于构建in条件,他可以在sql中对集合进行迭代。如下:

<delete id="deleteBatch"> delete from user where id in<foreach collection="array" item="id" index="index" open="("  close=")" separator=","> #{id} </foreach></delete>

我们假如说参数为----  int[] ids = {1,2,3,4,5}  ----那么打印之后的SQL如下:

delete form user where id in (1,2,3,4,5)释义: collection:collection属性的值有三个分别是list、array、map三种,分别对应的参数类型为:List、数组、map集合,我在上面传的参数为数组,所以值为array

item :表示在迭代过程中每一个元素的别名

index:表示在迭代过程中每次迭代到的位置(下标)

open :前缀

close:后缀

mybatis常用标签(refid、foreach、trim)(mybatis isnotempty标签)

separator:分隔符,表示迭代时每个元素之间以什么分隔

我们通常可以将之用到批量删除、添加等操作中。

相当于mysql里的游标!!!

3、mybatis动态sql中的trim标签的使用

trim标记是一个格式化的标记(format),可以完成set或者是where标记的功能,如下代码:

1、

select * from user<trim prefix="WHERE" prefix override="AND |OR"><if test="name != null and name.length()>0"> AND name= #{name}</if><if test="gender != null and gender.length()>0"> AND gender= #{gender}</if></trim>

假如说name和gender的值都不为null的话打印的SQL为:

select * from user where   #  name = 'xx' and gender = 'xx'

在红色# 标记的地方是不存在第一个and的,上面两个属性的意思如下:

prefix:前缀      

prefixoverride:去掉第一个and或者是or

2、

update user<trim prefix="set" suffix override="," suffix=" where id =#{id} "><if test="name != null and name.length()>0"> name=#{name} ,</if><if test="gender != null and gender.length()>0"> gender=#{gender} , </if></trim>

假如说name和gender的值都不为null的话打印的SQL为:

update user set name='xx' , gender='xx' #  whereid='x'

在红色标记的地方不存在逗号,而且自动加了一个set前缀和where后缀,上面三个属性的意义如下,其中prefix意义如上:

suffixoverride:去掉最后一个逗号(也可以是其他的标记,就像是上面前缀中的and一样)

suffix:后缀

本文链接地址:https://www.jiuchutong.com/zhishi/299686.html 转载请保留说明!

上一篇:【Android源码面试宝典】MMKV从使用到原理分析(二)(android界面源码)

下一篇:html+css+js制作LOL官网,web前端大作业(3个页面+模拟登录+链接)(js怎么制作)

  • 红米buds3防水吗(红米buds3有降噪吗)

    红米buds3防水吗(红米buds3有降噪吗)

  • 华为手机有录音机功能吗(华为手机有录音功能在哪里)

    华为手机有录音机功能吗(华为手机有录音功能在哪里)

  • ps5怎么删除游戏(ps5怎么删除游戏安装包)

    ps5怎么删除游戏(ps5怎么删除游戏安装包)

  • 电脑保护屏幕怎么设置(电脑保护屏幕怎么退出来)

    电脑保护屏幕怎么设置(电脑保护屏幕怎么退出来)

  • 华为畅享10e和10s的区别(华为畅享10e和10s屏幕一样大吗)

    华为畅享10e和10s的区别(华为畅享10e和10s屏幕一样大吗)

  • 历代iphone信号对比(苹果各代信号对比)

    历代iphone信号对比(苹果各代信号对比)

  • 华为p40pro跑分是多少

    华为p40pro跑分是多少

  • 智联招聘拉黑企业有什么用(被智联招聘拉黑的人会不会有征信问题)

    智联招聘拉黑企业有什么用(被智联招聘拉黑的人会不会有征信问题)

  • 电脑一直充电对电池会不会有影响(电脑一直充电对电脑好吗)

    电脑一直充电对电池会不会有影响(电脑一直充电对电脑好吗)

  • 京东秒杀是什么意思(京东 秒杀什么意思)

    京东秒杀是什么意思(京东 秒杀什么意思)

  • 电脑上的ppt用什么软件打开(电脑上的ppt用什么软件)

    电脑上的ppt用什么软件打开(电脑上的ppt用什么软件)

  • 无线网络受限是怎么回事(无线网络受限是什么意思)

    无线网络受限是怎么回事(无线网络受限是什么意思)

  • 华为手机左上角有个hd是什么意思(华为手机左上角出现一个HD怎么取消)

    华为手机左上角有个hd是什么意思(华为手机左上角出现一个HD怎么取消)

  • 怎么开启siri语音唤醒(在哪开启siri)

    怎么开启siri语音唤醒(在哪开启siri)

  • 抖音搞笑配音在哪找(抖音里面搞笑配音)

    抖音搞笑配音在哪找(抖音里面搞笑配音)

  • 微信收藏下载的文件在哪里(第二个微信怎么下载)

    微信收藏下载的文件在哪里(第二个微信怎么下载)

  • 苹果7要不要升级13

    苹果7要不要升级13

  • 手机qq群文件怎么做(手机qq群文件怎么重命名)

    手机qq群文件怎么做(手机qq群文件怎么重命名)

  • vivox27手机防水级别(vivox20防水)

    vivox27手机防水级别(vivox20防水)

  • ntldr丢失怎么装系统(ntldr找不到最简单解决方法)

    ntldr丢失怎么装系统(ntldr找不到最简单解决方法)

  • 如何把下载的视频存到相册(如何把下载的视频保存到百度网盘)

    如何把下载的视频存到相册(如何把下载的视频保存到百度网盘)

  • 只接通讯录里的电话(只接通讯录里的电话怎么设置)

    只接通讯录里的电话(只接通讯录里的电话怎么设置)

  • 图书管理系统的需求分析和项目介绍(图书管理系统的软件结构图)

    图书管理系统的需求分析和项目介绍(图书管理系统的软件结构图)

  • 模型调优:验证集的作用(就是为了调整超参数)(模型如何优化)

    模型调优:验证集的作用(就是为了调整超参数)(模型如何优化)

  • Vue - v-for 循环渲染多个 “重复“ 子组件(仅 ref 不同,this.$refs.xx 使用时依然能准确找到子组件)将子组件 ref 设为动态,这样每个子组件都是 “独立“ 的!详细教程(vue循环数组渲染列表)

    Vue - v-for 循环渲染多个 “重复“ 子组件(仅 ref 不同,this.$refs.xx 使用时依然能准确找到子组件)将子组件 ref 设为动态,这样每个子组件都是 “独立“ 的!详细教程(vue循环数组渲染列表)

  • strings命令  在对象文件或二进制文件中查找可打印的字符串(string对象放在哪里)

    strings命令 在对象文件或二进制文件中查找可打印的字符串(string对象放在哪里)

  • 购买金税盘和维税盘区别
  • 公司的现金收入可以直接发工资吗
  • 缴纳城镇土地使用税
  • 手写报销单据格式图片
  • 会计二级科目是哪个
  • 增值税为什么不用计提
  • 合并财务报表内部交易对净利润影响
  • 差旅费报销单属于什么凭证?
  • 建筑业未开票收入情况说明
  • 工程预付款未按时支付
  • 折价购入
  • 个人所得税退税多久到账
  • 商业汇票概念股票
  • 啤酒的税率是多少2022
  • 加油票可以抵扣几个点的增值税
  • 无运输工具承运业务按何税目缴纳增值税
  • 营改增后固定资产入账
  • 研发支出辅助账2021版
  • 计算企业所得税的公式
  • 分期付款购入原材料怎么做账
  • 公司买珠宝会计分录
  • 土地出让金契税什么时候缴纳
  • 车船税在哪个科目下
  • 增值税纳税申报实训心得体会
  • 抄报不了是怎么回事?
  • 劳务派遣公司增值税税率
  • 供热企业所使用的燃气
  • 报销单据粘贴单样本
  • 哪些情形需要办理外债审核登记
  • 事业单位收受礼品怎么处理
  • 000.exe病毒
  • 如何解决心脏供血不足
  • mac设置在哪里设置
  • 冲回上年多提的费用会计分录
  • 蜡梅的养殖方法视频
  • 股份支付有哪些基本类型
  • windows7中可以设置控制计算机
  • 土地承包经营权和土地经营权区别
  • 小企业取得存货入账价值的依据是
  • 浅析论文题目
  • 什么是成本会计
  • HTML常用标记
  • 301重定向到https 并且不带www跳转到带www
  • 织梦前台的菜单怎么换
  • sql server数字类型
  • 火车头 采集器
  • 不动产进项税额抵扣新政策2021
  • 个人所得税申报截止时间
  • 进口环节缴纳关税计入什么科目
  • 固定成本和变动成本举例
  • 领款单有法律效力吗
  • 提取公积金收手续费吗
  • 其他应付款贷方正数表示什么意思
  • 收到代理服务费怎么做分录呢
  • 年度所得税汇算清缴报告在哪打印
  • 软件开发的知识产权有哪些
  • 人工费的发票税率怎么算
  • 增值税专用发票开了有什么用
  • 企业净资产怎么填
  • sql is in
  • mysql必知必会和sql基础教程
  • kali linux 视频教程
  • ubuntu怎么root权限
  • centos配置IP地址
  • ubuntu和windows比较有什么好处
  • rundll32.exe进程很多
  • win10改服务器
  • winxp不能正常启动
  • windows10累积更新很慢
  • win7打印机删除后怎么恢复
  • 如何设置打开wincc不弹出项目管理
  • windows7的安装步骤
  • 欢迎使用来电提醒业务,本次呼叫将以点对点
  • jquery插件大全
  • mac上安装破解软件会怎样
  • jquery插件怎么写
  • 汽车车船税收费标准表山西
  • 分摊费用怎么计算公式
  • 税务税收预测
  • 青岛市税务局长魏
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号