zoukankan      html  css  js  c++  java
  • MyBatis 返回(批量)新增数据的自增id


    <
    insert id="save" parameterType="Vote" useGeneratedKeys="true" keyProperty="id"> INSERT INTO vote VALUES(null,#{theme},#{isuse}) <selectKey resultType="int" order="AFTER" keyProperty="id"> SELECT LAST_INSERT_ID() AS id </selectKey> </insert>


    接收:

      vm.save(vote);
      int id=vote.getId();

    批量时,传入list,获取时类同单个,mybatis自动把自增的id装入list中的对象的id,mapper.xml写法如:

        <insert id="save" parameterType="list" useGeneratedKeys="true" keyProperty="id">
            INSERT INTO t_usergift
            (id,fromid,toid,`itemid`,amount,title,content,state,create_time)
            VALUES
            <foreach collection="list" item="item" index="index"
                separator=",">
                (#{item.id},#{item.fromid},#{item.toid},#{item.itemid},#{item.amount},#{item.title},#{item.content},#{item.state},#{item.createTime})
            </foreach>
            
        </insert>

    另:上述方式确实不能返回自增id,而且还报错(不认识keyProperty中指定的Id属性),解决如下(网传,没试过)

    1、升级Mybatis版本到3.3.1以上。

    2、在Dao中不能使用@param注解。

    3、Mapper.xml中使用list变量接受Dao中的集合。

     
  • 相关阅读:
    P4839 P哥的桶 题解(线段树维护线性基)
    线性基入门
    Lowest Common Ancestor 题解(lca+思维)
    B
    java string对象的简单方法
    AtCoder Grand Contest 016 D
    FFT
    回文自动机(BZOJ2565)
    二维RMQ
    AC自动机(BZOJ1030)
  • 原文地址:https://www.cnblogs.com/qingyibusi/p/6104647.html
Copyright © 2011-2022 走看看