位置: IT常识 - 正文

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

编辑:rootadmin
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怎么制作)

  • 华为无线耳机怎么配对苹果手机(华为无线耳机怎么调音量大小)

    华为无线耳机怎么配对苹果手机(华为无线耳机怎么调音量大小)

  • 华为手机圆圈浮动窗口怎么关闭(华为手机圆圈浮标怎么设置)

    华为手机圆圈浮动窗口怎么关闭(华为手机圆圈浮标怎么设置)

  • 两台iphone怎么同步备忘录(两台iPhone怎么同步微信记录)

    两台iphone怎么同步备忘录(两台iPhone怎么同步微信记录)

  • 电脑休眠怎么设置密码锁屏(电脑休眠怎么设置时间)

    电脑休眠怎么设置密码锁屏(电脑休眠怎么设置时间)

  • 降噪孔捅一下会坏吗(捅了降噪孔)

    降噪孔捅一下会坏吗(捅了降噪孔)

  • 指纹解锁在哪里能找到(荣耀80指纹解锁在哪里)

    指纹解锁在哪里能找到(荣耀80指纹解锁在哪里)

  • 华为设置的电话黑名单怎么拉出来(华为设置的电话铃声)

    华为设置的电话黑名单怎么拉出来(华为设置的电话铃声)

  • 电脑打字怎样分段

    电脑打字怎样分段

  • 电信卡网速慢怎么办(电信卡网速慢怎么提速)

    电信卡网速慢怎么办(电信卡网速慢怎么提速)

  • 8核16线程处理器有哪些(8核16线程处理器数量和每个处理器内核数量)

    8核16线程处理器有哪些(8核16线程处理器数量和每个处理器内核数量)

  • 淘宝可以进行第二次换货不(淘宝怎么第二天直达)

    淘宝可以进行第二次换货不(淘宝怎么第二天直达)

  • 鼠标是输入设备吗(鼠标是输入设备的什么)

    鼠标是输入设备吗(鼠标是输入设备的什么)

  • 抖音极速版提现可靠吗(抖音极速版提现记录在哪里查)

    抖音极速版提现可靠吗(抖音极速版提现记录在哪里查)

  • 计算机的主屏指的是(主屏是指微机什么的时钟频率)

    计算机的主屏指的是(主屏是指微机什么的时钟频率)

  • 淘宝二维码扫一扫怎么找(淘宝扫二维码能辨别真假吗)

    淘宝二维码扫一扫怎么找(淘宝扫二维码能辨别真假吗)

  • 手机剪贴板怎么打开(手机剪贴板怎么增加复制数量?)

    手机剪贴板怎么打开(手机剪贴板怎么增加复制数量?)

  • i音乐如何收藏歌单在哪里(applemusic收藏的音乐)

    i音乐如何收藏歌单在哪里(applemusic收藏的音乐)

  • 苹果11怎么双卡(苹果11怎么双卡切换)

    苹果11怎么双卡(苹果11怎么双卡切换)

  • 携程购票如何取消套餐费用(携程购票如何取票)

    携程购票如何取消套餐费用(携程购票如何取票)

  • 网页加载不出来(为什么有的网页加载不出来)

    网页加载不出来(为什么有的网页加载不出来)

  • iwatch怎么看几代型号(iwatch怎么看几代型号a2356)

    iwatch怎么看几代型号(iwatch怎么看几代型号a2356)

  • 5g商用牌照是什么(5g商用牌照发放的上市公司)

    5g商用牌照是什么(5g商用牌照发放的上市公司)

  • 微信说不了语音(微信说不了语音显示说话时间点短)

    微信说不了语音(微信说不了语音显示说话时间点短)

  • win11系统放大镜在哪? windows11开启放大镜功能的技巧(windows11 缩放)

    win11系统放大镜在哪? windows11开启放大镜功能的技巧(windows11 缩放)

  • 育空地区的落基山羊,加拿大 (© Mark Newman/Getty Images)(育空领地)

    育空地区的落基山羊,加拿大 (© Mark Newman/Getty Images)(育空领地)

  • 【服务器】利用树莓派搭建 web 服务器-无需公网IP(使用服务器)

    【服务器】利用树莓派搭建 web 服务器-无需公网IP(使用服务器)

  • 2000元以内最强NAS 群晖DS211j深度评测(2000元以内最强二手游戏笔记本)

    2000元以内最强NAS 群晖DS211j深度评测(2000元以内最强二手游戏笔记本)

  • 印花税滞纳金如何计算日期
  • 准予扣除的税金及附加怎么算
  • 仓储服务费税率2021
  • 已开票未确认收入怎么填写纳税申报表
  • 所得税费用是哪类科目
  • 航空运单能当发票使用吗
  • 货运增值税发票抵扣条件
  • 非居民工资薪金个人所得税计算方法
  • 购货无法取得发票财务如何处理
  • 企业自有房产的所有权
  • 灭草剂使用说明
  • 公司拖欠工资还要继续工作吗?
  • 汽车配件税收分类编码
  • etc卡预充值后怎么办
  • 固定资产一次性扣除政策2023文件
  • 企业计算缴纳所得税标准
  • 居民企业非货币性资产投资、转让所得如何缴税?
  • 进项发票里的印花税如何做账?
  • 小微企业税收优惠政策最新2023
  • 净利润怎么计入所有者权益
  • 固定资产发票可以抵税吗
  • 出纳人员怎么核对现金日记账?
  • 香港企业股东分红税
  • 增值税明细账怎么登记
  • hbuilder打包apk
  • php教程100
  • 总公司的固定资产可以划转子公司
  • 当期损益都有啥
  • 湘菜尖椒炒肉的做法
  • 解决安装后软件icon一圈白边问题
  • jquery 批量删除
  • 捐资民办学校可以盈利吗
  • php调用变量的符号
  • yolov5 output
  • php判断字符串是否包含字母
  • “php”
  • php实现会话的步骤
  • 如何防止sql注入 java
  • netconf over ssh
  • 小规模纳税人增值税超过30万怎么纳税
  • 购扶贫产品怎么记账
  • 红字发票可以跨越开吗
  • 董事费收入
  • 帝国cms怎么调用文章随机段落
  • 什么叫境外所得
  • 电缆租赁发票开具属于什么项目
  • Mysql以utf8存储gbk输出的实现方法提供
  • 公司贷款 利息
  • 小规模纳税人财务报表季报怎么填
  • 什么是存货周转期间
  • 加油票和过桥过路费怎么做账
  • 固定资产无形资产处置损益计入
  • 年终奖金计入工资薪金所得吗
  • 固定资产清理的税率是多少
  • 银行汇票结算业务
  • 固定资产清理费用账务处理
  • 会计凭证装订后应当加贴封条
  • mysql类似软件
  • windows安装在何处
  • windows桌面快捷方式怎么创建
  • centos开启telnet服务
  • 利用windows资源管理
  • win1020h2版本要更新多久
  • win8系统怎么样好用吗
  • node.js gui
  • ping命令的基本使用方法
  • JavaScript的setter与getter方法
  • 用js自定义函数生成表格
  • 关于中秋节的古诗
  • unity接收udp
  • Android---59---Toast的使用
  • python3中map
  • jquery 图片裁剪
  • android隐藏图片
  • centos python2.7升级到3.7
  • 广东省税务局官网 国家税务总局
  • 生产企业税点
  • 税务稽查局工资高吗
  • 浙江税务局网络发票页无法打字
  • 本期应纳的增值税
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设