zoukankan      html  css  js  c++  java
  • 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命名

  • 相关阅读:
    jQuery常用方法
    Orcle数据库恢复
    PLSQL Developer操作
    oracle 11g 报错记录
    oracle 11g 安装及网络配置
    微信公众平台开发(二)
    微信公众平台开发(一)
    SQL Server 索引
    Ext.NET MVC 配置问题总结
    XML序列化和反序列化
  • 原文地址:https://www.cnblogs.com/padazala/p/14641621.html
Copyright © 2011-2022 走看看