当有时我们插入一条数据时,由于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. CSS 海盗船加载特效

    CSS 海盗船加载特效 <!DOCTYPE html> <html lang="en"> <head> <meta charset=

  2. 带你理解MST性质

    写在前面 最小生成树的引出 假设要在n个城市之间建立通信联络网,则连通n个城市需要n-1条线路.在这种情况下,我们自然需要考虑一个问题,如何在最节省经费的条件下建立这个网络? 很自然地我们会想到,将各 ...

  3. ITextRenderers html生成pdf 分页+横向

    1.pdf横向生成问题:格式化html是加上 @page{size:297mm 210mm;} public static String formatPdfHtml(String html,Strin ...

  4. Linux mem 2.7 内存错误检测 (KASAN) 详解

    文章目录 1. 简介 2. Shadow 区域初始化 3. 权限的判断 3.1 read/write 3.2 memxxx() 4. 权限的设置 4.1 buddy 4.1.1 kasan_free_ ...

  5. 运行脚本 结果出现 Vim: Warning 并且卡住不能输入其它命令

    当我在执行一个 关于执行linux操作的php脚本时,就出现了以下信息:"Vim: Warning: Output is not to a terminal",接着出现了一大堆的字 ...

  6. [源码解析] PyTorch分布式(5) ------ DistributedDataParallel 总述&如何使用

    [源码解析] PyTorch 分布式(5) ------ DistributedDataParallel 总述&如何使用 目录 [源码解析] PyTorch 分布式(5) ------ Dis ...

  7. Water 2.4 发布,一站式服务治理平台

    Water(水孕育万物...) Water 为项目开发.服务治理,提供一站式解决方案(可以理解为微服务架构支持套件).基于 Solon 框架开发,并支持完整的 Solon Cloud 规范:已在生产环 ...

  8. [luogu5438]记忆

    令$f(x)=\frac{x}{\max_{k^{2}|x}k^{2}}$,最优解即将$f(l),f(l+1),...,f(r)$排序,那么每存在一种不同的数则答案减1,那么$x$出现当且仅当$f(x ...

  9. [luogu5665]划分

    暴力dp,用f[i][j]表示前i个数,最后一个区间是(j,i]的最小答案,转移方程用可以用前缀和来优化,复杂度为$o(n^3)$(然后可以各种优化到$o(n^2)$,但这不需要)输出f[i][j], ...

  10. 反调试代码调试死机代码禁止F12代码

    反调试代码调试死机代码禁止F12代码  // 反调试函数,参数:开关,执行代码 function siji(){    var total="";    for (var i=0; ...