Mybatis插入数据返回主键ID
<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的更多相关文章
- MyBatis框架——mybatis插入数据返回主键(mysql、oracle)
向数据库中插入数据时,大多数情况都会使用自增列或者UUID做为主键.主键的值都是插入之前无法知道的,但很多情况下我们在插入数据后需要使用刚刚插入数据的主键,比如向两张关联表A.B中插入数据(A的主键是 ...
- mybatis插入是返回主键id
<!-- 插入数据:返回记录的id值 --> <insert id="insertOneTest" parameterType="org.chench. ...
- 关于mybatis插入数据库返回主键id
关于Sequence主键的数据库来说,如: <insert id="add" parameterType="vo.Category"> <se ...
- mybatis插入数据返回主键
原来之前一直用错了... keyProperty是表示将返回的主键设置为该方法参数的对应属性中去,而不是用返回值的形式的去获取.
- Mybatis配置插入数据返回主键ID
需要在insert方法中添加 <insert id="insertSelective" parameterType="com.midou.ott.model.MDA ...
- Java MyBatis 插入数据库返回主键
最近在搞一个电商系统中由于业务需求,需要在插入一条产品信息后返回产品Id,刚开始遇到一些坑,这里做下笔记,以防今后忘记. 类似下面这段代码一样获取插入后的主键 User user = new User ...
- MyBatis 插入数据库返回主键
最近在搞一个电商系统中由于业务需求,需要在插入一条产品信息后返回产品Id,刚开始遇到一些坑,这里做下笔记,以防今后忘记. 类似下面这段代码一样获取插入后的主键 User user = new User ...
- Java MyBatis 插入数据库返回主键--insertSelective这样就不用每次到数据库里面查询了
insertSelective---Java MyBatis 插入数据库返回主键--insertSelective这样就不用每次到数据库里面查询了 https://www.cnblogs.com/xi ...
- myBatis获取批量插入数据的主键id
在myBatis中获取刚刚插入的数据的主键id是比较容易的 , 一般来说下面的一句话就可以搞定了 , 网上也有很多相关资料去查. @Options(useGeneratedKeys = true, k ...
随机推荐
- 集成支付宝,报警告warning: (arm64) /Users/tommy/Desktop/Project/ios-msdk-git/AlipaySDK4Standard/AlipaySDK/Library/UTDI
集成支付宝的时候遇到的问题,找到了解决办法,还说明了原因,非常好,觉得应该记下来,反正以我的记性下次一定是会忘光光哒~ 1) Go to Build Settings -> Build Opt ...
- Spring Security 集成 CAS(基于HTTP协议版本)
Spring Security 集成 CAS(基于HTTP协议版本) 近段时间一直研究Spring Security 集成 CAS,网上资料相关资料也很多,不过大都是基于Https的安全认证;使用ht ...
- linux下错误的捕获:errno(errno.h)和strerror(string.h)的使用
参考:http://blog.csdn.net/starstar1992/article/details/52756387 linux下错误的捕获:errno和strerror的使用 经常在调用lin ...
- 对混合数值,字符,null的字段进行排序
今天有个需求是进行排序. 这一列值是字符串类型的, 但是里面有数值型 比如"1" 和null类型的. 实现效果是需要 数值型的先按照数值的方式先排,然后字符串按照字符传排,最后 ...
- ASP.NET Core & Docker 实战经验分享
一.前言 最近一直在研究和实践ASP.NET Core.Docker.持续集成.在ASP.NET Core 和 Dcoker结合下遇到了一些坑,在此记录和分享,希望对大家有一些帮助. 二.中间镜像 我 ...
- 一种转换Ipv6地址的方法
原CSDN博客不再更新维护. 本文介绍了一种将char* 类型的Ipv6地址转换成BYTE(unsigned char)或者in6_addr类型的方法. 说明:使用时需要下载Ipv6++.lib和Ip ...
- 用户体验很好的密码校验js
<div class="form-group" data-reactid=".0.1.1.0.1.1.3.0.1.1"><label for= ...
- [Python]range与xrange用法对比
[整理内容]具体如下: 先来看如下示例:>>>x=xrange(0,8)>>> print xxrange(8)>>>print x[0]0> ...
- loj548 「LibreOJ β Round #7」某少女附中的体育课
这道题好神啊!!! 发现这题就是定义了一种新的卷积,然后做k+1次卷积. 这里我们就考虑构造一个变换T,使得$T(a) \cdot T(b) =T(a∘b)$,这里是让向量右乘这个转移矩阵. 于是我们 ...
- BZOJ_3223: Tyvj 1729 文艺平衡树 _splay
题意: 您需要写一种数据结构(可参考题目标题),来维护一个有序数列,其中需要提供以下操作:翻转一个区间,例如原有序序列是5 4 3 2 1,翻转区间是[2,4]的话,结果是5 2 3 4 1 分析: ...