mybatis中返回自动生成的id

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

时间: 2024-09-28 18:34:48

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

nodejs+mysql 插入一条记录时获取自动生成的id

最近在写学生申报项目的后端接口时发现需要获取数据库自动生成的主键,因为要先将项目信息插入到project表,得到生成的项目ID,再将项目ID和指导老师ID插入到project_member表 一开始想在插入项目之后,用SELECT LAST_INSERT_ID() 获取生成的ID,后来发现,在插入操作完成后的返回结果里就带有自动生成的ID.可用rows.insertId获取 代码: //利用事务对project表和project_member表进行插入 conn.beginTransaction

mybatis使用generator自动生成代码时的类型转换

使用mybatis的generator自动生成代码,但是oracle数据库中number(6,2)总是自动转成BigDecimal,我想要转成的是float类型 这样就写了一个类型转换器,需要继承JavaTypeResolver接口 然后在mybaties配置文件generatorConfig.xml中类型转换配置位置添加上即可 <javaTypeResolver type="com.generator.MyJavaTypeResolver"> <property n

在Word中如何自动生成参考文献引用

来自:在Word中如何自动生成参考文献引用 在写毕业论文时,参考文献动辄就有四五十篇,在文中对照参考文献逐一引用是一件十分痛苦的事情,而且一旦参考文献的顺序发生变化,文中的引用也要逐个修改,那么,我们如何自动生成参考文献引用呢? 方法/步骤 打开需要排版的论文: 我们使用一篇参考文献尚未编号的论文为例,从头讲解引用的自动生成过程. 我们首先对参考文献进行编号,编号的详细过程如图中所示: 然后,我们将光标放到需要插入参考文献引用的位置,在Word的“插入”模块中选择“交叉引用”: 在弹出的对话框中

android R文件不在自动生成资源id

关于android R文件不在自动生成资源id的问题解决: 1.设置eclipse->project->build automatically 2.上述没有解决的话 project->clear

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

ntellij idea用快捷键自动生成序列化id 类继承了Serializable接口之后,使用alt+enter快捷键自动创建序列化id 进入setting→inspections→serialization issues→选择 serializable class without 'serialVersionUID' 原文地址:https://www.cnblogs.com/alan319/p/8820250.html

Intellij IDEA中mybatis-generator自动生成

一.在maven工程中的resource中创建generatorConfig.xml 二.配置generatorConfig.xml: <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN" "h

使用Mybatis的逆向工程自动生成代码

1.逆向工程的作用 Mybatis 官方提供了逆向工程,可以针对数据库表自动生成Mybatis执行所需要的代码(包括mapper.xml.Mapper.java.pojo). 2.逆向工程的使用方法 逆向工程需要的jar包如下图所示: 也可以直接下载我Github上面的源代码(https://github.com/nnngu/generatorSqlmapCustom ),在 lib 目录下已经添加了需要的 jar 包. 下载下来的项目目录如下图: 从上图中看,①是依赖的jar包.②是配置文件.

MyBatis逆向工程,自动生成dao、实体类、mapper文件

利用mybatis generator 自动生成生成dao.实体类.mapper文件这里介绍两种方法:1.独立的文件夹的方式,脱离开发工具2.基于开发工具的方式(Eclipse)1.独立的文件夹的方式,脱离开发工具基本步骤:(方法有多种,这里的方法是脱离项目工程,利用命令行建立文件.后续可以按需复制进工程) 1.下载相应工具 2.依据相应数据库导入相应数据库连接jar包 3.编写generatorConfig.xml文件 4.命令行模式,进入lib文件夹 5.输入:java -jar mybat

JAVA入门[7]-Mybatis generator(MBG)自动生成mybatis代码

一.新建测试项目 新建Maven项目MybatisDemo2,修改pom.xml引入依赖.dependencies在上节基础上新增 <dependency> <groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-core</artifactId> <version>1.3.2</version> </dependency>