Mybatis3 执行insert语句后获…
2017-10-13 16:39
204 查看
摘要
hibernate中获取新插入记录的对象id非常容易,通过其持久化对象就能完成。而Mybatis中有点复杂,本文转载了一篇文章,讲述mybatis中获取插入记录的自增长id,经测试在MySQL中有效,其他数据库未知。需求
使用MyBatis往MySQL数据库中插入一条记录后,需要返回该条记录的自增主键值。如果xml的传入参数是map,selectKey会将结果放到入参数map中。用POJO的情况一样,但是有一点需要注意的是,keyProperty对应的字段在POJO中必须有相应的setter方法,setter的参数类型还要一致,否则会报错。
直接获取Integer类型的返回值将得到受影响的行数。
方法
下面说两种方法,MyBatis+MySQL返回插入记录的主键ID:
第一种:
第二种:
总结
这两种写法都可以,但有两点一定要注意:1)Mybatis Mapper
文件中,“useGeneratedKeys”和“keyProperty”必须添加,keyProperty=”id”
,这个id必须是实体的id,而不是数据表的主键id,否则,得不到正确的返回结果;
2)接收返回值时候,必须用实体的get属性,而不能定义变量,否则,接收不到正确的返回结果:即必须用user.getId()来接收。
相关文章推荐
- MyBatis insert操作返回主键
- Mybatis在执行insert语句返回自增主键
- mybatis 中insert语句报如下错误: Incorrect integer value: '' for column 'pic_len' at row 1
- 如何在mybatis中一个insert,delete,update中执行多条SQL语句
- MYSQL 执行Insert语句throws "The table 'xxx' is full" 的问题分析及解决办法
- db2expln 查看sql语句的执行计划
- 如何在mybatis中一个insert,delete,update中执行多条SQL语句
- mybatis执行insert语句,如何返回主键给对象的问题(限主键为整数类型)
- 【转载】mybatis3 添加ehcache支持
- Mybatis执行update,insert等语句返回的不是受影响的行数
- Mybatis执行insert语句,获取主键
- mybatis 执行insert语句总是报错,ORA-00911 无效字符错误解决方法
- 非常简单,让log4j输出mybatis的sql语句和执行结果
- Flash AS3 学习3 - 右键菜单
- Mybatis下insert语句后获取自增id
- INSERT 语句与 FOREIGN KEY 约束""冲突
- 在SQL SERVER中定时执行SQL语句,或者存储过程. &sql server 自动执行存储过程
- pivoting insert(旋转插入
- Php session内部执行流程的再…
- Oracle 执行Insert into 语句失效解决方法