mybatis 注解方式批量添加對象,批量返回主鍵ID


@Insert("<script> insert into USER(xxx,xxx,xxx) values 
        "<foreach collection='users' item='user' index = 'index' separator=','>" +
        "(#{user.xxx},#{user.xxx},#{user.xxx}) " +
        "</foreach> </script>")
@Options(useGeneratedKeys = true,keyColumn = "ID", keyProperty = "users.id")
int batchInsert(@Param("users")List<User> users);

注解方式 - 注意點 : 

keyColumn 表示數據庫表主鍵字段, 適用mysql的自增主鍵
keyProperty  表示實體主鍵字段 ,必須要加users,不然mybatis 不知道把主鍵賦值給哪個參數
@Param("users") 必須加上

批量插入后, 返回的主鍵都賦值給了users列表,通過users既可獲取所有的主鍵Id,進行下一步操作


XML 方式 :
void batchInsert(List<User> list);

 <insert id="batchInsert" parameterType="java.util.List" useGeneratedKeys="true" keyProperty="id">
        insert into USER(
        XXX,
        XXX,
        XXX
        )
        values
        <foreach collection="list" item="user" separator=",">
            (
            #{userxxx},
            #{userxxx},
            #{user.xxx}
            )
        </foreach>
    </insert>

 dao層不需要@Param注解,使用集合用 list命名


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM