iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >mybatis动态拼接实现有条件的插入
  • 915
分享到

mybatis动态拼接实现有条件的插入

2024-04-02 19:04:59 915人浏览 八月长安

Python 官方文档:入门教程 => 点击学习

摘要

目录动态拼接实现有条件的插入最近在做项目的时候遇到了一个很现实的问题mybatis插入语句mybatis插入语句一般都是这样写 动态拼接实现有条件的插入 最近在做项目的时候

动态拼接实现有条件的插入

最近在做项目的时候遇到了一个很现实的问题

那就是根据场景不同,然后实现有条件的插入,说穿了就是当这列有数据的时候进行数据的插入,没有数据的时候自动忽略这列。

其实这些在mybatis的api中有涉及到,但是之前一直没有好好看,直到最近用到了才认真的看了看这块的内容。

<!-- 新增部门人员 -->
    <insert id="addStaffForApp" parameterType="com.Hivescm.org.dto.StaffForAppDto" >
        insert into base_department_staff
        <trim prefix="(" suffix=")" suffixOverrides="," >
            status,
            group_id,
            staff_code,
            realname,
            create_time,
            phone,
            is_temporary
            <if test="param.email !=null">
                email,
            </if>
            <if test="param.userId !=null">
                user_id,
            </if>
            <if test="param.sex !=null">
                sex,
            </if>
        </trim>
 
        <trim prefix="values (" suffix=")" suffixOverrides="," >
            #{param.status},
            #{param.groupId},
            #{param.staffCode},
            #{param.realname},
            #{param.phone},
            #{param.temporary}
            <if test="param.email !=null">#{param.email},
            </if>
            <if test="param.userId !=null">#{param.userId},
            </if>
            <if test="param.sex !=null">#{param.sex},
            </if>
       </trim>
    </insert>

这里头的trim相信就不用多说了,经常用来去空格。这个trim标签中有三个属性,prefix这个是表明了你要拼接sql的前缀,suffix这个则是表明了动态sql的后缀,suffixOverrides这个会帮助我去掉最后一个多出来的逗号。

mybatis插入语句

mybatis插入语句一般都是这样写 

<!-- useGeneratedKeys="true"把新增加的主键赋值到自己定义的keyProperty(id)中 -->

<insert id="insert" parameterType="xxx.xxx.xxx.xxx" keyProperty="id" useGeneratedKeys="true">
  • useGeneratedKeys 取值范围true|false 默认值是:false。
  • 含义:设置是否使用JDBC的getGenereatedKeys方法获取主键并赋值到keyProperty设置的领域模型属性中。

之前一直以为useGeneratedKeys="true"是让Mysql数据库主键新增,其实是,插入语句后将id赋值给实体bean,即使用insert后,使用bean.getId()可以获得值,若是false,bean.getId()=null。

不管true还是false,数据库插入的数据,都会自动生成主键(前提是设置自动增长主键)。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。

--结束END--

本文标题: mybatis动态拼接实现有条件的插入

本文链接: https://www.lsjlt.com/news/140804.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作