mybatis+mysql返回插入值后的主键id
2015-08-25 23:08
821 查看
[code]<insert id="addBatch">
insert into action_group(pl_id, name, create_uid, `desc`)
values
<foreach collection="actionGroupList" item="actionGroup" separator=",">
(
<choose><when test="actionGroup.platformInfo!=null">#{actionGroup.platformInfo.plId}</when>
<otherwise>null</otherwise></choose>,
#{actionGroup.name},
<choose><when test="actionGroup.createUser!=null">#{actionGroup.createUser.userId}</when>
<otherwise>null</otherwise></choose>,
#{actionGroup.desc}
)
</foreach>
</insert>
第一步:
在Mybatis Mapper文件中添加属性“useGeneratedKeys”和“keyProperty”,其中keyProperty是Java对象的属性名!
[html] view
plaincopy
<insert id="insertAndGetId" useGeneratedKeys="true" keyProperty="id" parameterType="com.bookmanager.model.LeaveMessage">
insert into leave_message_tbl (content, createdate,
userid)
values (#{content,jdbcType=VARCHAR}, #{createdate,jdbcType=DATE},
#{userid,jdbcType=INTEGER})
</insert>
useGeneratedKeys: 要求数据库本身具备主键自动增长的功能,比如说,mysql,sqlserver可以使用useGeneratedKeys =true 这功能,不支持主键自动增长的数据库是不能使用useGeneratedKeys =true的;
keyProperty:一定得和java对象的属性名称一直,而不是表格的字段名
第二步:
void insertAndGetId(LeaveMessage record);
返回值为int,mybatis会判断为返回插入成功的条数所以会一直返回为1
此时获取id可以通过在mapper中 '对象'.getId()获得id值,当初困扰了好久,原来自动赋进去了
第三步:
[html] view
plaincopy
@RequestMapping("/save")
@ResponseBody
public ResultDTO save(@RequestBody LeaveMessage leaveMessage){
ResultDTO dto = ResultDTO.getIntance();
dto.message = "留言失败,请重新提交";
dto.type = "error";
try {
/*leaveMessageService.save(leaveMessage);*/
leaveMessageService.insertAndGetId(leaveMessage);
System.out.println(leaveMessage.getId());
dto.message = "恭喜你,留言成功";
dto.type = "success";
} catch (Exception e) {
e.printStackTrace();
}
return dto;
}
结果:
相关文章推荐
- 三种方法链接MySQL
- Mysql安装及1067错误相关
- MySQL优化---DBA对MySQL优化的一些总结
- MySQL数据类型和常用字段属性总结
- mysql 5.5 手册目录
- mysql到底用哪一款存储引擎呢
- MySQL设置数据库表为只读
- 如何更好地管理你的数据库——navicat(mysql)
- mysql声明摘要
- mysql学习笔记(六):JDBC详解
- 一步一步mysql(四)之 触发器与存储过程
- (图解)MySQL 5.6 for Windows 解压缩版安装
- MySQL合理利用锁机制优化
- MySQL 幻读
- Mysql InnoDB锁
- 关于MySQL的事务处理及隔离级别
- mysql中关于order by的一些小细节
- ubuntu 安装mysql步骤和用户登录管理总结
- mysql MyISAM表锁
- MySql数据库分表分区方法