mybatis的自定义主键生成策略

再用mybatis时,在插入数据时,有时会用到他的主键回填功能,即获取数据库插入的主键值并将该值赋给pojo中的某一个主键属性


今天又了解到除此之外mybatis还支持自定义主键功能,如数据库中并没有定义主键自增功能,比如现有如下需求:在插入数据时,如果表中没有记录,则主键为1,否则主键自增2,这时需用到selectkey元素进行处理,具体代码如下

<insert id="insertRole" parameterType="role" useGeneratedKeys="true" keyProperty="id">

<selectKey keyProperty="id" resultType="int" order="BEFORE">

select if(max(id) is null , 1 , max(id) + 2) as newId from t_role

</selectKey>

insert into t_role (id,role_name,note) 

values( #{id},#{roleName},#{note})

</insert>

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值