一、写一个实体类

public class UserInfo {
private long userId;
private String userAccount;
private String userPassword;
private String userName;
private int userStatus;
private String userCreateDatetime;
private String userRegisterIp; public String getUserName() {
return userName;
} public void setUserName(String userName) {
this.userName = userName;
} public long getUserId() {
return userId;
} public void setUserId(long userId) {
this.userId = userId;
} public String getUserAccount() {
return userAccount;
} public void setUserAccount(String userAccount) {
this.userAccount = userAccount;
} public String getUserPassword() {
return userPassword;
} public void setUserPassword(String userPassword) {
this.userPassword = userPassword;
} public int getUserStatus() {
return userStatus;
} public void setUserStatus(int userStatus) {
this.userStatus = userStatus;
} public String getUserCreateDatetime() {
return userCreateDatetime;
} public void setUserCreateDatetime(String userCreateDatetime) {
this.userCreateDatetime = userCreateDatetime;
} public String getUserRegisterIp() {
return userRegisterIp;
} public void setUserRegisterIp(String userRegisterIp) {
this.userRegisterIp = userRegisterIp;
}
}

二、插入的mybatis insert语句

<insert id="batchInsert" parameterType="list" keyProperty="userId" keyColumn="user_id" useGeneratedKeys="true">
insert into system_user(
user_account,
user_password,
user_name,
user_status,
user_create_datetime,
user_register_ip
) values
<foreach collection="list" item="item" index="index" separator=",">
(
#{item.userAccount},
#{item.userPassword},
#{item.userName},
#{item.userStatus},
#{item.userCreateDatetime},
#{item.userRegisterIp}
)
</foreach>
</insert>

三、dao接口

int batchInsert(List<UserInfo> data);

然后再遍历data list里面的UserInfo实例,发现属性userId已经赋值为自增的id的值

第二种方法,单参数是map的时候。参数不是一个实体。

<!-- 添加 -->
<insert id="insert" parameterType="map" keyProperty="operlog_id" useGeneratedKeys="true">
insert into system_oper_log
(
user_account,
operlog_url,
operlog_status,
operlog_ip,
operlog_exception,
operlog_type,
operlog_before,
operlog_after
)values(
#{user_account},
#{operlog_url},
#{operlog_status},
#{operlog_ip},
#{operlog_exception},
#{operlog_type},
#{operlog_before},
#{operlog_after}
)
</insert>

然后再返回的map参数里面,返现多了一个键,叫做operlog_id

mybatis获取批量插入的主键自增id的更多相关文章

  1. mybatis 3 批量插入返回主键 Parameter 'id' not found

    @Insert("<script>INSERT INTO scp_activity_gift (activity_id,type,gift_id,status,limit_num ...

  2. hao947 : Mybatis resultMap配置插入和主键自增返回 : 好947

    映射配置文件  好947  <!-- type:映射实体类的数据类型 id:resultMap的唯一标识 -->  <resultMap type="person" ...

  3. oracle批量插入带主键自增

    https://blog.csdn.net/qq_37630354/article/details/82792288

  4. (转)MyBatis+MySQL 返回插入的主键ID

    MyBatis+MySQL 返回插入的主键ID 需求:使用MyBatis往MySQL数据库中插入一条记录后,需要返回该条记录的自增主键值. 方法:在mapper中指定keyProperty属性,示例如 ...

  5. mybatis+mysql返回插入的主键,参数只是提供部分参数

    mybatis+mysql返回插入的主键,参数只是提供部分参数 <insert id="insertByChannelIdOpenid" useGeneratedKeys=& ...

  6. mysql数据库单表只有一个主键自增id字段,ibatis实现id自增

    mysql数据库单表只有一个主键自增id字段,ibatis实现id自增 <insert id="autoid">        insert into user_id ...

  7. myBatis获取批量插入数据的主键id

    在myBatis中获取刚刚插入的数据的主键id是比较容易的 , 一般来说下面的一句话就可以搞定了 , 网上也有很多相关资料去查. @Options(useGeneratedKeys = true, k ...

  8. mybatis批量插入返回主键问题

    今天整合mybatis时候用到返回主键问题,批量插入总是返回不了主键还报错. 记录入下: pom版本: <mybatis.version>3.2.6</mybatis.version ...

  9. mybatis 批量插入 返回主键id

    我们都知道Mybatis在插入单条数据的时候有两种方式返回自增主键: 1.对于支持生成自增主键的数据库:增加 useGenerateKeys和keyProperty ,<insert>标签 ...

随机推荐

  1. matplotlib 学习总结

    matplotlib 学习总结 作者:csj更新时间:01.09 email:59888745@qq.com 说明:因内容较多,会不断更新 xxx学习总结: 回主目录:2017 年学习记录和总结 # ...

  2. Android Launcher分析和修改2——Icon修改、界面布局调整、壁纸设置

    上一篇文章说了如何修改Android自带Launcher2的默认界面设置(http://www.cnblogs.com/mythou/p/3153880.html). 今天主要是说说Launcher里 ...

  3. 批量 kill mysql 线程

    时常有一些烂sql跑在数据库里,我们要进行kill,避免影响拖垮数据库. mysql> show processlist; +----+------+---------------------+ ...

  4. winserver2012 自启动软件

    开始->运行->输入shell:startup 在打开的启动文件夹中,将需要启动程序的快捷方式复制进去,完工 重启试试吧

  5. MongoDB随笔3:使用索引

    创建索引的语句很简单. 1.单键索引的创建:db.test.ensureIndex({name:1},{name:'index_name'}) 2.复合索引的创建:db.test.ensureInde ...

  6. 对于Python中@property的理解和使用

    @property 这个我们在很多代码中都会用到,简单讲即为一个只读属性的调用 如果需要有修改权限,需要再加一个@属性名.setter 例: #!/usr/bin/env python # -*- c ...

  7. Java----------JMX规范

    作者:郭无心链接:https://www.zhihu.com/question/36688387/answer/68667704来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明 ...

  8. 用NextResult方法取得多个Result Set

    http://dotnet.chinaitlab.com/ADONET/757364.html 从 ADO.NET 1.x 开始,DataReader 就可以在单一次的查询动作中,「批次 (batch ...

  9. 【Nginx】配置及使用

    常用命令: nginx -t //可以查到配置是否正确,以及配置文件路径. 如果配置不生效 sudo killall -9 nginx 注意在配置文件中注明访问来源(例如没有写明ip,就不能通过ip直 ...

  10. mysql数据库建立的数据库在哪个文件夹?

    一般在安装目录下的data文件夹下,或者在C:\Documents and Settings\All Users\Application Data\MySQL\MySQL Server 5.1\dat ...