当有时我们插入一条数据时,由于id很可能是自动生成的,如果我们想要返回这条刚插入的id怎么办呢。

在mysql数据中我们可以在insert下添加一个selectKey用以指定返回的类型和值:
    方法一:
    <insert id="addUser" parameterType="com.zhl.pojo.User">
   <selectKey resultType="java.lang.Integer" order="AFTER" keyProperty="id"> 
        SELECT LAST_INSERT_ID() AS ID   
    </selectKey> 
    INSERT INTO 
    userinfo (name ,password, age, gender, email) 
    VALUES(#{name:VARCHAR} ,#{password:VARCHAR} ,#{age:INTEGER} ,
       #{gender:INTEGER} ,#{email:VARCHAR})
    </insert>
其中resultType表示返回的类型。ID就是返回的刚插入的ID。
 
在oracle中类似selectKey如下:
<selectKey resultType="java.lang.Integer" order="BEFORE" keyProperty="id"> 
            SELECT LOGS_SEQ.nextval AS ID FROM DUAL 
</selectKey>
   方法二:
    <insert id="addUser" parameterType="com.zhl.pojo.User" useGeneratedKeys="true" keyProperty="id">
    INSERT INTO userinfo (name ,password, age, gender, email) 
    VALUES(#{name:VARCHAR} ,#{password:VARCHAR} ,#{age:INTEGER} ,
       #{gender:INTEGER},#email:VARCHAR})
    </insert>
 
 
   查看返回id的具体java代码:
   public void addUser(){
   user.setPassword(user.getName());
   UserServiceImpl userService = new UserServiceImpl();
   PrintWriter w = null;
   try {
      w = ServletActionContext.getResponse().getWriter();
   } catch (IOException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
   }
   // 执行插入操作
   int count = userService.addUser(user);
   //  执行完插入操作后,刚才的那个user中id就已经有值了
   System.out.println("count="+count+"  userId="+user.getId());
   if(count!=0){
      w.write("{\"success\":\"success\"}");
   }
   else{
      w.write("{\"success\":\"fail\"}");
   }
}
   输出:count=1  userId=59

mybatis中返回自动生成的id的更多相关文章

  1. C#运用存储过程新增一条记录并返回自动生成的ID

    @Hcy黄灿奕:http://blog.sina.com.cn/iihcy 前言: 1.存储过的好处: 存储过程相对于其他的数据库访问方法有以下的优点: (1)重复使用.存储过程可以重复使用,从而可以 ...

  2. 基于eclipse的mybatis映射代码自动生成的插件

    基于eclipse的mybatis映射代码自动生成的插件 分类: JAVA 数据库 工具相关2012-04-29 00:15 2157人阅读 评论(9) 收藏 举报 eclipsegeneratori ...

  3. 基于eclipse的mybatis映射代码自动生成的插件http://blog.csdn.net/fu9958/article/details/7521681

    基于eclipse的mybatis映射代码自动生成的插件 分类: JAVA 数据库 工具相关2012-04-29 00:15 2157人阅读 评论(9) 收藏 举报 eclipsegeneratori ...

  4. Eclipse 使用mybatis generator插件自动生成代码

    Eclipse 使用mybatis generator插件自动生成代码 标签: mybatis 2016-12-07 15:10 5247人阅读 评论(0) 收藏 举报 .embody{ paddin ...

  5. IDEA自动生成序列化ID

    1.安装 serialVersionUID 插件: 2.设置你的IDEA为检查序列化ID 3.重启IDEA(有的版本可以不重启) 4.在需要自动生成序列化ID的类中使用快捷键:Alt+Insert 转 ...

  6. springboot整合mybatis,利用mybatis-genetor自动生成文件

    springboot整合mybatis,利用mybatis-genetor自动生成文件 项目结构: xx 实现思路: 1.添加依赖 <?xml version="1.0" e ...

  7. eclipse中如何自动生成构造函数

    eclipse中如何自动生成构造函数 eclipse是一个非常好的IDE,我在写java程序的时候使用eclipse感觉开发效率很高.而且有很多的快捷和简便方式供大家使用,并且能直接生成class文件 ...

  8. pojo类自动生成序列化ID

    自动生成序列化ID

  9. Intellij idea用快捷键自动生成序列化id

    ntellij idea用快捷键自动生成序列化id 类继承了Serializable接口之后,使用alt+enter快捷键自动创建序列化id 进入setting→inspections→seriali ...

随机推荐

  1. SQL注入之猫舍之sqlmap的使用

    先说一下最常用的基础指令 -u 指定注入点(一般为url栏的网址) --dbs 跑库名 --tables 跑表名 --columns 跑字段名 --dump 枚举数据(高危指令,容易进去) -D 库名 ...

  2. 设计模式学习-使用go实现桥接模式

    桥接模式 前言 定义 优点 缺点 应用场景 代码实现 参考 桥接模式 前言 桥接模式的代码实现非常简单,但是理解起来稍微有点难度,并且应用场景也比较局限,所以,相当于代理模式来说,桥接模式在实际的项目 ...

  3. idea离线安装lombok插件

    1.查看自己idea版本,2019.1.2,必须安装相同版本的插件 2.从http://plugins.jetbrains.com/plugin/6317-lombok-plugin中下载对应版本的l ...

  4. 工具篇:apache-httpClient 和 jdk11-HttpClient的使用

    关注公众号,一起交流,微信搜一搜: 潜行前行 HttpClient (apache) apache HttpClient 是 java项目里 较为常用的组件之一:对接外部服务时,各个商家提供的接口是各 ...

  5. spring定时任务ThreadPoolTaskScheduler使用注意事项之线程池大小

    背景 最近小伙伴解决了一个工单,描述为"手工推送案件无法推,提示token失效",当前工单状态为待关闭,解决方案为"东软接口不稳定造成的,东软的接口恢复正常后,问题解决& ...

  6. 寒武纪加速平台(MLU200系列) 摸鱼指南(二)--- 模型移植-环境搭建

    PS:要转载请注明出处,本人版权所有. PS: 这个只是基于<我自己>的理解, 如果和你的原则及想法相冲突,请谅解,勿喷. 前置说明   本文作为本人csdn blog的主站的备份.(Bl ...

  7. Python介绍和安装

    python介绍和安装 目录 python介绍和安装 1. Python简介 2. 解释器 2.1 Python解释器的种类 2.2 Python解释器版本 3. Windows下安装Python 3 ...

  8. [atARC070E]NarrowRectangles

    记$len_{i}=r_{i}-l_{i}$,即第$i$个区间的长度 用$f_{i,j}$表示前$i$个区间合法,第$i$个区间位于$[j,j+len_{i}]$的最小代价,暴力dp的时间复杂度为$o ...

  9. Python实战:截图识别文字,过万使用量版本!(附源码!!)

    前人栽树后人乘凉,以不造轮子为由 使用百度的图片识字功能,实现了一个上万次使用量的脚本. 系统:win10 Python版本:python3.8.6 pycharm版本:pycharm 2021.1. ...

  10. Devs--开源规则引擎介绍

    Devs Devs是一款轻量级的规则引擎. 开源地址:https://github.com/CrankZ/devs 基础概念 此规则引擎的基础概念有字段.条件.规则等. 其中字段组成条件,条件组成规则 ...