位置: 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怎么制作)

  • 倾听者m2和m2s区别(倾听者m2s最大支持tf卡)

    倾听者m2和m2s区别(倾听者m2s最大支持tf卡)

  • 手机分身内存双倍吗(手机分身存储空间)

    手机分身内存双倍吗(手机分身存储空间)

  • 投影仪无信号是怎么回事(投影仪投影无信号)

    投影仪无信号是怎么回事(投影仪投影无信号)

  • 信号信息消息的区别(信号是消息中所包含的有效内容)

    信号信息消息的区别(信号是消息中所包含的有效内容)

  • 华为手机怎么设置蓝牙名字(华为手机怎么设置高清通话功能)

    华为手机怎么设置蓝牙名字(华为手机怎么设置高清通话功能)

  • 针式打印机和喷墨打印机的区别(针式打印机和喷墨打印机家庭用哪种好点)

    针式打印机和喷墨打印机的区别(针式打印机和喷墨打印机家庭用哪种好点)

  • 怎么看手机定位是不是北斗(怎么看手机定位去过哪里)

    怎么看手机定位是不是北斗(怎么看手机定位去过哪里)

  • wps是哪个国家的(wps是哪国的软件)

    wps是哪个国家的(wps是哪国的软件)

  • 光盘可以重复刻录吗(光盘重复刻录之前的数据丢失)

    光盘可以重复刻录吗(光盘重复刻录之前的数据丢失)

  • 华为手机怎么样关机(华为手机怎么样截屏幕的图片)

    华为手机怎么样关机(华为手机怎么样截屏幕的图片)

  • 拼多多不发货赔偿规则(拼多多不发货赔偿多少)

    拼多多不发货赔偿规则(拼多多不发货赔偿多少)

  • oppofindx2屏幕供应商(oppofindx2屏幕参数)

    oppofindx2屏幕供应商(oppofindx2屏幕参数)

  • 快手名字前面的数字是什么(快手名字前面的三角形标志是什么意思)

    快手名字前面的数字是什么(快手名字前面的三角形标志是什么意思)

  • 快手怎么保存图片到相册里(快手怎么保存图片带音乐的视频)

    快手怎么保存图片到相册里(快手怎么保存图片带音乐的视频)

  • hd显卡和集成显卡的区别(集成显卡支持hdr吗)

    hd显卡和集成显卡的区别(集成显卡支持hdr吗)

  • 个人热点拉黑怎么解除(个人热点拉黑怎么找回来)

    个人热点拉黑怎么解除(个人热点拉黑怎么找回来)

  • 在sql中,视图不能从什么导出(在SQL中,视图不能从)

    在sql中,视图不能从什么导出(在SQL中,视图不能从)

  • 畅享9有没有nfc功能(畅享9有没有红外线?)

    畅享9有没有nfc功能(畅享9有没有红外线?)

  • 三星s10支持多少w无线充电(三星s10支持多少g内存卡)

    三星s10支持多少w无线充电(三星s10支持多少g内存卡)

  • 苹果7plus卡贴机激活步骤(苹果7plus卡贴机怎么样)

    苹果7plus卡贴机激活步骤(苹果7plus卡贴机怎么样)

  • vivo手机散热在哪里(vivos7手机散热)

    vivo手机散热在哪里(vivos7手机散热)

  • dropbox为什么被屏蔽(dropboxcom)

    dropbox为什么被屏蔽(dropboxcom)

  • 手机自动开关机原因是什么(手机自动开关机怎么解决?)

    手机自动开关机原因是什么(手机自动开关机怎么解决?)

  • dubbo实战篇:dubbo超时设置(dubbo dubbox)

    dubbo实战篇:dubbo超时设置(dubbo dubbox)

  • 印花税税源明细表怎么填
  • 永久性差异什么是暂时性差异
  • 暂估的应付账款无法开具发票在金蝶云星空怎么操作
  • 小规模纳税人开票税率
  • 代开发票的小微企业如何享受税收优惠
  • 单位搬迁员工怎么办
  • 增值税专用发票和普通发票的区别
  • 转让财产收入征税吗
  • 押金计入什么费用
  • 公司成立时代垫资合法吗
  • 咨询费成本怎么成本结转
  • 应收款确认坏账分录
  • 企业所得税怎么征收
  • 电子发票开错了怎么解决?
  • 增值税进行未认定怎么办
  • 小规模纳税人可以自己开专票吗
  • 不动产的进项税额分两年抵扣吗?
  • 现代服务促销服务费的经营范围
  • 个体户定期定额申报表怎么填
  • 计提员工社保拿什么做原始凭证?
  • 老板请客吃饭拿餐饮发票公司报销怎么账务处理?
  • 组织员工出游注意事项
  • spf13-vim – Vim编辑器终极发布
  • w10系统怎么连接
  • 销售不动产分期收款怎么确认收入
  • 留抵增值税可以冲营业外支出吗
  • php初学者用什么软件
  • 子公司财务管理策略有哪些
  • Joomla调用系统自带编辑器的实现方法
  • 建筑行业现在还能斤不
  • 山东省项目
  • pycharm操作界面
  • mysql存储引擎是什么意思
  • 抵押房产的保险费
  • sql 生成新表
  • 人力资源服务的发票明细
  • 全年一次性奖金并入或单独哪个好
  • 车辆购置税收优惠
  • 出纳开的收据找不到了怎么办
  • 个人开咨询费 有哪些税
  • 递延收益分摊是当月还是次月
  • 残疾人就业保障金
  • 工装费用制度
  • 商标注册费2000元记哪个科目
  • 宾馆购买的床财务怎么做账
  • 长期股权投资成本法会计处理
  • 信用卡刷卡手续费是谁收取的
  • 净资产收益率与什么指标有关
  • 补发工资如何计税计算
  • 小规模应交增值税怎么算出来的
  • 会计分录怎么用
  • 增值税转型不得超过多少
  • 怎么冲减多计提的增值税
  • 投标保证金退回是不是没中标
  • 其他应付款是否能大于收入
  • 材料采购办法
  • 会计审核程序
  • 用Autoconf检测MySQL软件包的教程
  • sql忽略null
  • win8 系统设置
  • 应用商店升级版
  • win10系统优酷播放不了
  • xp系统几位操作系统
  • thinkpad笔记本键盘无法输入
  • win8什么时候发布
  • linux最小安装和正常安装
  • cocos2dx-js
  • opengl 4.2
  • Android游戏开发案例教程小小弹球
  • jquery怎么判断复选框选中
  • Node.js中的全局对象有
  • input输入@弹出框
  • unity 1
  • python字符串大全
  • javascript的dom
  • js鼠标点击图片就消失
  • 增值税运输费用税额计算
  • 广东省电子税务局app
  • 专用发票章盖在哪里
  • 环保标识码
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设