当有时我们插入一条数据时,由于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

最新文章

  1. 修改jetty的默认端口号
  2. jmobile学习之路 ---- 视口
  3. 洛谷P2158 [SDOI2008]仪仗队
  4. C#搜索指定文件夹内的符合要求的文件
  5. SQLSERVER不带JOIN的语句与带JOIN语句的区别
  6. angularjs 过滤器详解
  7. linux下转换U盘文件系统
  8. 【C51】74HC573芯片
  9. JS 点击复制Copy (share)
  10. 【MVC】ASP.NET MVC HtmlHelper用法大全
  11. oracle 判断是不是数值/数字
  12. 从链接上获取参数值, location.href上获取参数
  13. 用汇编语言研究C语言的全局变量、局部变量、参数、返回值放在哪里
  14. [Google Code Jam (Qualification Round 2014) ] B. Cookie Clicker Alpha
  15. 解决IE6 IE7 JSON.stringify JSON 未定义问题
  16. Linux01--文件管理,常用命令 权限管理
  17. input 和raw_input
  18. 我也谈javascript闭包的原理理解
  19. SpaceNet数据集
  20. Spring——事务

热门文章

  1. Fiddler抓包工具简介:(一)认识Fiddler
  2. Java测试开发--HttpClient常规用法(九)
  3. fabric运行错误汇总
  4. MnogoDB唯一索引,稀疏索引
  5. mbatis动态sql中传入list并使用
  6. 使用 docker + verdaccio 搭建npm私有仓库
  7. [bzoj1391]order
  8. @Value设置默认值
  9. 日志审计功能-appent多个日志
  10. Codeforces 1119H - Triple(FWT)