首页 > 其他 > 详细

mybatis 注解方式批量添加对象,批量返回主键ID

时间:2021-04-10 22:16:24      阅读:19      评论:0      收藏:0      [点我收藏+]
@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命名

mybatis 注解方式批量添加对象,批量返回主键ID

原文:https://www.cnblogs.com/padazala/p/14641621.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!