<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. Net Core 生成图形验证码

    1. NetCore ZKweb       在我第一次绘制图形验证码时是采用的ZKweb的绘制库,奉上代码参考      public byte[] GetVerifyCode(out string ...

  2. 统一流控服务开源-1:场景&业界做法&算法篇

    最近团队在搞流量安全控制,为了应对不断增大的流量安全风险.Waf防护能做一下接入端的拦截,但是实际流量会打到整个分布式系统的每一环:Nginx.API网关.RPC服务.MQ消息应用中心.数据库.瞬间的 ...

  3. 队列Queue和栈

    1.队列Queue是常用的数据结构,可以将队列看成特殊的线性表,队列限制了对线性表的访问方式,只能从线性表的一段添加(offer)元素, 从另一段取出(poll)元素,队列遵循先进先出的原则. 2.J ...

  4. 深入出不来nodejs源码-编译启动(1)

    整整弄了两天,踩了无数的坑,各种奇怪的error,最后终于编译成功了. 网上的教程基本上都过时了,或者是版本不对,都会报一些奇怪的错误,这里总结一下目前可行的流程. node版本:v10.1.0. 首 ...

  5. 使用XAMPP和DVWA在Windows7上搭建渗透测试环境

    前言: XAMPP是一个Web应用程序运行环境集成软件包,包括MySQL.PHP.PerI和Apache的环境及Apache.MySQL.FilleZilla.Mercury和Tomecat等组件.D ...

  6. 监控与管理dubbo服务

    Dubbo是阿里多年前开源的一套服务治理框架,在众多互联网企业里应用广泛.本文介绍了一些如何监控与管理dubbo服务.使用的工具与<dubbox 的各种管理和监管>大致相同,本文更侧重于命 ...

  7. Redis in Python:HyperLogLog(pfadd、pfcount、pfmerge)

    redis HyperLogLog 可以接受多个元素作为输入,并给出输入元素的基数估算值. 基数:集合中不同元素的数量.比如 [foo', 'bar', 'foobar', 'bar', 'test' ...

  8. 两个标签页定位第二个标签页元素时显示element not visible

    问题描述 web页面有两个标签页, 当转换到第二个标签页定位元素时, 显示element not visible. 代码 ... //省略 WebElement ele= browser.getEle ...

  9. index_levedb.go

    )     binary.BigEndian.PutUint64(key, fid)     return l.db.Delete(key, nil) } //关闭资源 func (l *LevelD ...

  10. bzoj 3629 聪明的燕姿 约数和+dfs

    考试只筛到了30分,正解dfs...... 对于任意N=P1^a1*P2^a2*......*Pn^an, F(N)=(P1^0+P1^1+...+P1^a1)(P2^0+P2^1+...+P2^a2 ...