mybatis 在insert的同时取得主键的值

来源:互联网 发布:东莞pmp培训 知乎 编辑:程序博客网 时间:2024/06/06 03:59

业务上需要在插入数据的同时获取到自增主键的值,然后返回给前台。

因为用的是Mysql 所以先从Mysql所支持的SQL入手,在网上找了半天没发现合适的解决办法。

无意中发现一篇文章说的是通过对mybatis的XML中insert的配置的调整就可以轻松获取自增主键的值。

帮了大忙了。具体请看下面代码。

1.插入自增主键数据,返回主键

<insert id="insertXXX"  parameterType="xxx.Shop"  useGeneratedKeys="true" keyProperty="shopId" >       insert into tbl_xxxx  (.......)  values (.....);</insert>

Shop shop = new Shop();insertXXX(shop);//这里的shop即是入参又是出参shop.getShopId();//直接通过get方法就能取出自增主键的值

下面是从书本上摘过来的,仅供参考。


2.插入非自增主键数据返回主键

非自增主键就不能用useGeneratedKeys了,

这里要用到selectKey,先获取到主键,将主键设置到参数类里,然后在insert的时候再取出来用。


  <insert id="insertTest" parameterType="......TestInfo" >    <selectKey keyProperty="testsId" resultType="String" order="BEFORE" >        SELECT LPAD(IFNULL(max(A.testId), 0) + 1, 5, '0') AS testId FROM tbl_testInfo A WHERE A.shopId = #{shopId}    </selectKey>    INSERT INTO tbl_testInfo (        testId,testValue....) VALUES(#{testId},#{testVaule})









1 0
原创粉丝点击