Mybatis之insert返回主键

来源:互联网 发布:展示网站源码 编辑:程序博客网 时间:2024/06/05 18:53


使用mybatis进行插入操作时,有时候我们插入完成后需要用到该记录的主键,那么先插入再查一次显然是不合理的,今天就记录一下mybatis使用insert语句自动返回主键值的办法;

首先声明一下返回主键是基于bean的,即insert的入参应该是一个bean,假设id字段为主键,则插入完成之后mybatis会自动给id字段赋值;其他情况

本次测试是在mysql下进行的,其他数据库可能会有差异;

废话不说,上代码:

public class TestDto {private int id;private String str;public int getId() {return id;}public void setId(int id) {this.id = id;}public String getStr() {return str;}public void setStr(String str) {this.str = str;}}

mapper方法:

public int testMybatisReturnId(TestDto td);

mapperxml

<!-- 测试insert返回主键 --><!-- 方法1: useGeneratedKeys="true" keyProperty="id" --><!-- 方法2:<selectKey resultType="java.lang.Integer" keyProperty="id" order="AFTER" >    SELECT @@IDENTITY</selectKey> --><insert id="testMybatisReturnId" parameterType="com.xxx.TestDto" useGeneratedKeys="true" keyProperty="id">insert into tt (str) values (#{str})</insert>

这是测试代码:


@Testpublic void testMybatisReturnId(){for (int i = 0; i < 5; i++) {TestDto td = new TestDto();td.setStr(UUID.randomUUID().toString());monitorMapper.testMybatisReturnId(td);System.out.println(td.getId());System.out.println("*******");}}

经测试,插入完成后可以把对应的id主键打印出来啦!done!








0 0
原创粉丝点击