Mybatis 插入后返回数据库自动增长ID

Posted JustDo

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mybatis 插入后返回数据库自动增长ID相关的知识,希望对你有一定的参考价值。

MySQL和MSSQL返回主键方法

在personMap.xml中

<insert id="addPerson" parameterType="orm.Person" keyProperty="id" useGeneratedKeys="true">
    insert into Person (name,age,gender) values (#{name},#{age},#{gender})
</insert>

调用插入方法,将mybatis返回的自动增长ID自动返回给id属性

SqlSession session =DBUtils.getSqlSession();
Person p=new Person();
p.setName("caoyc");
p.setAge((byte)18);
p.setGender("");
System.out.println(session.insert("orm.personMapper.addPerson",p));;
session.commit();
session.close();
System.out.println(p.getId());

通过实体对象p.getId():就可以获取插入后该记录的id了

 

Oracle数据

<insert id="addPerson" parameterType="orm.Person" >
    <selectKey resultType="java.long.Integer" keyProperty="id" order="BEFORE">
        select  idauto.nextval from dual
    </selectKey>
    insert into Person (id,name,age,gender) values (#{id},#{name},#{age},#{gender})
</insert>

 

以上是关于Mybatis 插入后返回数据库自动增长ID的主要内容,如果未能解决你的问题,请参考以下文章

mybatis怎样批量插入数据到oracle,就算id自动增长问题

Mybatis+Mysql插入数据库返回自增主键id值的三种方法

mybatis插入数据后返回自增的主键id

MyBatis 插入时返回刚插入记录的主键值

Mybatis中,当插入数据后,返回最新主键id的几种方法,及具体用法

Mybatis+Oracle --批量插入