Mybatis 动态insert语句

四、Mybatis动态插入之foreach插入、实现in集合、优化等 1、使用场景 ​ 在实际开发过程中,我们经常需要批量更新或者是批量查询,此时如果逐条插入,将影响效率。所以通常我们都是将其封装为一个集合,再进行插入。主要以下三种方式: foreach 实现批量插入 foreach 实现in集合 foreach 实现动态update,与插入类似。 foreach优化 2、foreach属性介绍 collection:指定要遍历的集合。入参为list,collection为list;入参为数组,collection为array;入参为map,collection为集合 阅读详情

mybatis的一个比较先进的思想是把Sql语句写在了配置xml文件(也支持注解),通过配置文件的方式,免去了一般软件开发的硬编码,当业务需求改变的时候,只需要更改sql语句即可!
下面是个人在学习mybatis动态insert语句的笔记,留着参考!
在写insert子句的时候,由于不知道需要插入多少字段,mybatis通过prefix,suffix,suffixOverrides很好的解决了该问题,实现了动态insert语句。

<insert id="insertSelective" parameterType="com.bootdo.system.domain.LogDO">
    insert into sys_log
    <trim prefix="(" suffix=")" suffixOverrides=",">
      <if test="id != null">
        id,
      </if>
      <if test="userId != null">
        user_id,
      </if>
      <if test="username != null">
        username,
      </if>
      <if test="operation != null">
        operation,
      </if>
      <if test="time != null">
        time,
      </if>
      <if test="method != null">
        method,
      </if>
      <if test="params != null">
        params,
      </if>
      <if test="ip != null">
        ip,
      </if>
      <if test="gmtCreate != null">
        gmt_create,
      </if>
    </trim>
    <trim prefix="values (" suffix=")" suffixOverrides=",">
      <if test="id != null">
        #{id,jdbcType=BIGINT},
      </if>
      <if test="userId != null">
        #{userId,jdbcType=BIGINT},
      </if>
      <if test="username != null">
        #{username,jdbcType=VARCHAR},
      </if>
      <if test="operation != null">
        #{operation,jdbcType=VARCHAR},
      </if>
      <if test="time != null">
        #{time,jdbcType=INTEGER},
      </if>
      <if test="method != null">
        #{method,jdbcType=VARCHAR},
      </if>
      <if test="params != null">
        #{params,jdbcType=VARCHAR},
      </if>
      <if test="ip != null">
        #{ip,jdbcType=VARCHAR},
      </if>
      <if test="gmtCreate != null">
        #{gmtCreate,jdbcType=TIMESTAMP},
      </if>
    </trim>
  </insert>
mybatis 中 if-test 判断详解 <if test="takeWay == '0'">】mybatis的if判断 单个的字符要写到双引号里面才行,改为<if test='takeWay == "1"'>或者改为<if test="takeWay == '1'.toString() "> .xml文件的部分代码 <insert id="insertDelivery" parameterType="com.zuci.request.DeliveryPreferenceReq"> ... 阅读详情

相关推荐

mybatis 动态表名insert 传入表名、字段名、数据

mybatis 动态insert动态表

道阻且长,行则将至 行而不辍,未来可期 2852

Mybatis 动态insert

Mybatis 动态insert 实体类 @Data public class User { private String uuid; private String username; private String password; private String email; public User(String uuid, String username, String password, String email) { this.uuid =

weixin_43951304的博客 2493

【CV论文精读】【协同感知综述】Collaborative Perception for Autonomous Driving :Current Status and Future Trend

感知是自动驾驶系统的关键模块之一,近年来取得了很大进展。然而,单个车辆的有限能力导致感知性能提高的瓶颈。为了突破个体感知的局限,协作感知被提出,它使车辆能够共享信息来感知视线和视野之外的环境。本文综述了有前途的协作感知技术的相关工作,包括介绍了基本概念,概括了协作模式,总结了协作感知的关键要素和应用。最后,我们讨论了这一研究领域面临的挑战和问题,并给出了一些潜在的进一步方向。

weixin_44184852的博客 4689

mybatis xml方式insert语句动态拼接需要插入的字段

mybatis xml方式insert语句动态拼接需要插入的字段 xml代码 <insert id="addUser" parameterType="bean.user" useGeneratedKeys="true" keyProperty="id"> insert into user(name,sex <include refid="getTestTbField" /> createTime) values(#{name},#{sex

weixin_42722245的博客 3740

别再瞎选了!手把手教你根据车型等级,在CarSim里快速匹配最合适的动力学模型

本文详细介绍了如何在CarSim中根据车型等级快速匹配最合适的动力学模型,提升仿真效率。通过分析CarSim模型库与A/B/C/D级车标准的对应关系,提供四步精准定位方法和不同车型的特殊处理技巧,帮助工程师避免常见错误,显著缩短模型准备时间。

weixin_27015733的博客 262

【C语言项目合集】这十个入门必备练手项目,让C语言对你来说不再难学!

适合刚入门C语言的编程学习小白的十个练手项目,每个都很经典且实用,让你学完C语言不再迷茫!

kxtxdy的博客 3万+

mybatis中insert语句动态sql篇

在mybatis中如何把insert语句改成动态入参; 原SQL语句如下: &amp;lt;!-- 插入user方法一 --&amp;gt; &amp;lt;insert id=&quot;addUser&quot; parameterType=&quot;user&quot;&amp;gt; insert into smbms_user(userCode,userName,userPassword,gender,addres

阿松哥哥2018的博客 4万+

从‘裸纤’到成品:手把手拆解光纤阵列(FA)的装配、点胶与端面研磨全流程

本文详细拆解了光纤阵列(FA)从裸纤到成品的全流程,包括装配、点胶与端面研磨等关键工艺。通过实战经验和数据对比,揭示了5G基站、数据中心等场景中FA的精密制造要点与常见故障解决方案,为光通信器件生产提供专业指导。

weixin_42652674的博客 743

Mybatis中的动态insert语句

【代码】Mybatis中的动态insert语句。

qq_45269076的博客 1067

全志A133的AndroidSDK

本小节来学习如何下载全志安卓SDK,SDK的目录,编译和烧录提示:以下是本篇文章正文内容,下面案例可供参考以上就是整个SDK的目录和编译烧录,目的在于让初学者快速了解整个源码的目录和编译出镜像喜欢就订阅吧。

qq_24093081的博客 4054

嵌入式Linux&Android开发-TP调试

目录 一、修改DTS,添加新的I2C设备 二、修改Makefile,Kconfig 三、tp调试时的问题排查 一、修改DTS,添加新的I2C设备 &i2c4 { status = "okay"; clock-frequency = <400000>; gslX680@40 { compatible = "gslX680"; reg = <0x40>; touch-gpio = <&gp

嵌入式成长手册 570

Mybatis的动态SQL语句(insert,update,select语句)

摘要:这篇文章,我将讲讲mybatis中关于插入(insert)、更新(update)、查询(select)经常使用的动态SQL语句。

m0_70545163的博客 2630

UNET改进77:全网首发-添加CFBlock |

本文介绍了在UNet模型中集成CFBlock注意力机制的实现方法。主要分为三个步骤:1) 创建CFBlock模块,包含卷积注意力机制和MLP;2) 在UNet连接处添加注意力模块;3) 在卷积层中嵌入注意力机制。具体实现包括:定义Conv、MLP和ConvolutionalAttention等基础模块,构建CFBlock核心结构;在UNet跳跃连接处插入注意力模块;将注意力机制整合到DoubleConv和Down模块中。该方法通过在不同位置引入注意力机制,可有效提升模型的特征提取能力。代码实现使用PyTor

AIcurator的博客 388

[简单]mybatis insert语句添加动态字段

      mysql数据库,id自增,配置如下:       &lt;insert id="saveTestTb" useGeneratedKeys="true" keyProperty="id" parameterType="TestTb"&gt; insert into db_ap_fgm_TestTb(id,traffic_type &lt;include ...

小瓜的博客 2986

从零开始:C#上位机集成YOLO完成摄像头目标追踪(保姆级教程)

新手入门C#上位机+YOLO做摄像头目标追踪,最忌讳的是“只抄代码,不懂逻辑”。这个教程不仅给了完整代码,还把核心原理和踩坑点都讲清楚了,新手跟着走,不仅能跑通demo,还能理解为什么这么写。如果你们在运行时遇到具体问题,比如模型导出失败、代码报错,都可以在评论区留言,我会一一解答。后续也可以出一期工业相机+YOLO目标追踪的教程,帮助大家把demo落地到实际生产中。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 1026

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

插入语句insert 在mybatis写动态sql if

插入语句insert 在mybatis写动态sql if。可以用动态的sql标签外部引入。

weixin_45716754的博客 1553

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

Mybatis(2)---insert语句,主要类介绍,mybatis动态代理,mybatis工具类

文章目录一、Mybatis执行insert语句1.sql映射文件2.接口文件3.用于保存数据库一列的Test类4.test文件夹下的测试类二、主要类介绍1.Resources2.SqlSessionFactoryBuilder3.SqlSessionFactory4.SqlSession三、Mybatis中的动态代理四、Mybatis工具类 一、Mybatis执行insert语句 1.sql映射文件 <?xml version="1.0" encoding="UTF-8" ?> <!DOC

叶卡捷琳堡的博客 1798

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

【在线教育平台】插入(insert)的实现流程

我们要把realname、username、password插入到数据库中。现在我们来一步步的在mapper中实现。 一:语句块的头部 (1)id:和dao层的接口对应,表示我实现的是此接口 (2)parameterType:参数,即跳转到AuthUser文件中,复制其完整路径即可。 (3)flushCache:如果为true,则表示当语句被调用时,会清空缓存。 附上flushCache的用...

玫瑰与鹿° 1061

Mybatis:updat语句和insert语句用法

update语句用法 <update id="update" parameterType="java.util.HashMap"> update basedevice <!-- set 语句可以自动去掉最后一个逗号 --> <set> <if test="new_id !=null and new_id !='' ">

奋斗鱼 528

Mybatis动态sql实现CRUD操作

1.select查询 select查询也可以使用之前的机制在配置文件中直接编写sql,但是select语句的where字句中需要拼接哪些查询字段是根据 传入的值决定的,此时可以通过Mybatis提供的标签实现判断,动态的去拼接select语句,而不是按照每次传入的条件参数 不同而去分情况写一堆的sql 在拼接的过程中Mybatis标签会根据传入值是否为空,自动去掉多余的and <select id="selc01" resultType="cn.cn.wyy.domain.Us

浅时光|初如梦 1478

mybatis的select、insert、update、delete语句

转自:https://www.cnblogs.com/yufeng218/p/6622644.html 一、select <!-- 查询学生,根据id --> <select id="getStudent" parameterType="String" resultMap="studentResultMap"> SELECT ST.STUDENT_ID,...

qq_41774226的博客 694

mybatis if

<!-- 4.1.1 在WHERE条件中使用if 需求: 实现一个用户管理高级查询功能,根据输入的条件去检索用户信息。这个功能 还需要支持以下三种情况:当只有输入用户名时,需要根据用户名进行模糊查 询;当只有输入邮箱时,根据邮箱进行完全匹配;当同时输入用...

枫林晚的博客 473
上一篇: 存储过程,Event事件,简单易懂,志伟随笔
下一篇: Java_海康摄像头二次开发,视频录制上传__志伟随笔
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值