MyBatis+MySQL返回插入的主键ID

王朝学院·作者佚名  2016-08-27  
宽屏版  字体:  |  |  | 超大  

需求:使用MyBatis往MySQL数据库中插入一条记录后,需要返回该条记录的自增主键值。

方法:在mapper中指定keyPRoperty属性,示例如下:

1<insertid="insert"useGeneratedKeys="true"keyProperty="id"parameterType="com.koala.blog.model.Test">2insert into test (id, name)3values (#{id,jdbcType=INTEGER}, #{name,jdbcType=VARCHAR})4</insert>

如上所示,我们在insert中指定了keyProperty="id",其中id代表插入的Test对象的主键属性。

还要明确useGeneratedKeys="true"否则也不会起作用

model,dao皆由mybatis generator自动生成

使用单元测试测试的方法:

1@Test2publicvoidtestInsert() {3com.koala.blog.model.Test test =newcom.koala.blog.model.Test();4test.setName("haha");5intresult =testService.insert(test);//result是指插入几条记录6LOGGER.info(test.getId());//test.getId()是获取新增记录的主键7}

该方法适用于主键为int型的自增主键

非自增主键需要设置主键后才能正确插入数据,所以配不配置 useGeneratedKeys="true"keyProperty="id"

都可以正确获取 test.getId()

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
© 2005- 王朝网络 版权所有