<insert id="add" parameterType="com.dsa.core.base.model.ProductSync">
        insert into tm_sync_product(
            <if test="productId!=null">product_id,</if>
            <if test="mainLimit!=null">main_limit,</if>
            <if test="productName!=null">product_name,</if>
            <if test="productBrand!=null">product_brand,</if>
            <if test="profitType!=null">profit_type,</if>
            <if test="deadLine!=null">dead_line,</if>
            <if test="productStartDay!=null">product_start_day,</if>
            <if test="productEndDay!=null">product_end_day,</if>
            <if test="buyStartDay!=null">buy_start_day,</if>
            <if test="buyEndDay!=null">buy_end_day,</if>
            <if test="riskRank!=null">risk_rank,</if>
            <if test="redeemFlg!=null">redeem_flg,</if>
            <if test="productStatus!=null">product_status,</if>
            <if test="startAmount!=null">start_amount,</if>
            <if test="addAmount!=null">add_amount,</if>
            <if test="yearRate!=null">year_rate,</if>
            <if test="productNote!=null">product_note,</if>
            <if test="otherBankBuy!=null">other_bank_buy,</if>
            <if test="otherBankAmt!=null">other_bank_amt,</if>
            <if test="rateVal!=null">rate_val,</if>
            <if test="recordFlg!=null">record_flg</if>
        ) values (
            <if test="productId!=null">#{productId},</if>
            <if test="mainLimit!=null">#{mainLimit},</if>
            <if test="productName!=null">#{productName},</if>
            <if test="productBrand!=null">#{productBrand},</if>
            <if test="profitType!=null">#{profitType},</if>
            <if test="deadLine!=null">#{deadLine},</if>
            <if test="productStartDay!=null">#{productStartDay},</if>
            <if test="productEndDay!=null">#{productEndDay},</if>
            <if test="buyStartDay!=null">#{buyStartDay},</if>
            <if test="buyEndDay!=null">#{buyEndDay},</if>
            <if test="riskRank!=null">#{riskRank},</if>
            <if test="redeemFlg!=null">#{redeemFlg},</if>
            <if test="productStatus!=null">#{productStatus},</if>
            <if test="startAmount!=null">#{startAmount},</if>
            <if test="addAmount!=null">#{addAmount},</if>
            <if test="yearRate!=null">#{yearRate},</if>
            <if test="productNote!=null">#{productNote},</if>
            <if test="otherBankBuy!=null">#{otherBankBuy},</if>
            <if test="otherBankAmt!=null">#{otherBankAmt},</if>
            <if test="rateVal!=null">#{rateVal},</if>
            <if test="recordFlg!=null">#{recordFlg}</if>
        )
        <selectKey keyProperty="id" order="AFTER" resultType="java.lang.Long">
             select last_insert_id() as id
        </selectKey>
    </insert>
注意:(此处为mysql)这里的selectKey的resultType 必须和实体对象中的id类型一致,否则报错。

oracle的如下:

<selectKey resultType="java.lang.Long" keyProperty="ID" order="AFTER">
SELECT IBOKEE_COMM_TAG_LIBRARY_SEQ.nextval AS Id FROM DUAL
</selectKey>

实体类
public class ProductSync implements Serializable {
         private Long id;
         ...
         ...

}

dao Mapper
public interface ProductSyncMapper {
   
    /**
     * @param product Object
     * 新增纪录
     */
    public void add(ProductSync product);
   
   
}

Mybatis插入数据返回主键ID的更多相关文章

  1. MyBatis框架——mybatis插入数据返回主键(mysql、oracle)

    向数据库中插入数据时,大多数情况都会使用自增列或者UUID做为主键.主键的值都是插入之前无法知道的,但很多情况下我们在插入数据后需要使用刚刚插入数据的主键,比如向两张关联表A.B中插入数据(A的主键是 ...

  2. mybatis插入是返回主键id

    <!-- 插入数据:返回记录的id值 --> <insert id="insertOneTest" parameterType="org.chench. ...

  3. 关于mybatis插入数据库返回主键id

    关于Sequence主键的数据库来说,如: <insert id="add" parameterType="vo.Category"> <se ...

  4. mybatis插入数据返回主键

    原来之前一直用错了... keyProperty是表示将返回的主键设置为该方法参数的对应属性中去,而不是用返回值的形式的去获取.

  5. Mybatis配置插入数据返回主键ID

    需要在insert方法中添加 <insert id="insertSelective" parameterType="com.midou.ott.model.MDA ...

  6. Java MyBatis 插入数据库返回主键

    最近在搞一个电商系统中由于业务需求,需要在插入一条产品信息后返回产品Id,刚开始遇到一些坑,这里做下笔记,以防今后忘记. 类似下面这段代码一样获取插入后的主键 User user = new User ...

  7. MyBatis 插入数据库返回主键

    最近在搞一个电商系统中由于业务需求,需要在插入一条产品信息后返回产品Id,刚开始遇到一些坑,这里做下笔记,以防今后忘记. 类似下面这段代码一样获取插入后的主键 User user = new User ...

  8. Java MyBatis 插入数据库返回主键--insertSelective这样就不用每次到数据库里面查询了

    insertSelective---Java MyBatis 插入数据库返回主键--insertSelective这样就不用每次到数据库里面查询了 https://www.cnblogs.com/xi ...

  9. myBatis获取批量插入数据的主键id

    在myBatis中获取刚刚插入的数据的主键id是比较容易的 , 一般来说下面的一句话就可以搞定了 , 网上也有很多相关资料去查. @Options(useGeneratedKeys = true, k ...

随机推荐

  1. 团队项目第二阶段个人进展——Day7

    一.昨天工作总结 冲刺第七天,动手完成了一个demo来实现数据的上传与下载 二.遇到的问题 代码逻辑没看太懂 三.今日工作规划 对发布页面的数据进行处理,实现能够请求和响应,并学习如何实现图片的上传与 ...

  2. java(二、基础语法和基本数据类型)

    Java 基础语法 一个Java程序可以认为是一系列对象的集合,而这些对象通过调用彼此的方法来协同工作.下面简要介绍下类.对象.方法和实例变量的概念. 对象:对象是类的一个实例,有状态和行为.例如,一 ...

  3. Maven Scope 依赖范围

    Maven依赖范围就是用来控制依赖与这三种classpath(编译classpath.测试classpath.运行classpath)的关系,Maven有以下几种依赖范围: ·compile:编译依赖 ...

  4. vue实现双向数据绑定的原理

    vue实现双向数据绑定的原理就是利用了 Object.defineProperty() 这个方法重新定义了对象获取属性值(get)和设置属性值(set)的操作来实现的. 在MDN上对该方法的说明是:O ...

  5. PAT1061:Dating

    1061. Dating (20) 时间限制 150 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yue Sherlock Holme ...

  6. Mysql中外键的 Cascade ,NO ACTION ,Restrict ,SET NULL

    外键约束对子表的含义: 如果在父表中找不到候选键,则不允许在子表上进行insert/update 外键约束对父表的含义: 在父表上进行update/delete以更新或删除在子表中有一条或多条对应匹配 ...

  7. Linux下MySQL的数据文件存放位置

    http://bbs.csdn.net/topics/390620630mysql> show variables like '%dir%';+------------------------- ...

  8. 关于Linux虚拟化技术KVM的科普 科普五(From 世民谈云计算)

    另一位大神写到KVM文章,KVM 介绍(1):简介及安装.KVM 介绍(2):CPU 和内存虚拟化.KVM 介绍(3):I/O 全虚拟化和准虚拟化 [KVM I/O QEMU Full-Virtual ...

  9. linux 安装 PHP fileinfo 扩展

    将windows解压Linux服务器 1.错误: PHP Fileinfo extension must be installed/enabled to use Intervention Image. ...

  10. attr和prop的区别以及在企业开发中应该如何抉择

    attr和prop有很多相同的地方,比如都可以操作标签的属性节点,而且获取的时候都只可以获取到相同节点的第一个,例如这样: $('span').attr('class');和$('span').pro ...