Chinaunix首页 | 论坛 | 博客
  • 博客访问: 4130243
  • 博文数量: 626
  • 博客积分: 10
  • 博客等级: 民兵
  • 技术积分: 11080
  • 用 户 组: 普通用户
  • 注册时间: 2012-08-23 13:08
文章分类

全部博文(626)

文章存档

2015年(72)

2014年(48)

2013年(506)

分类: Mysql/postgreSQL

2013-10-09 09:51:18

MyBatis 3的Bug

作者:chszs

转载请注明出处!


版本:MyBatis 3.0.4
Bug为:插入语句不能正确返回自增字段的值。

MySQL数据库脚本:
CREATE TABLE `worker` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `pin` varchar(64) DEFAULT NULL,
  `firstname` varchar(64) DEFAULT NULL,
  `lastname` varchar(64) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;
对应的sqlmap映射

  	 
		select LAST_INSERT_ID() as value
	
	insert into worker (pin, firstname, lastname) 
  values (#{pin}, #{firstname}, #{firstname}) 
 
对应的实体类Worker.java、DAO、接口、配置等通通省略......
执行的结果是只能返回1,得不到真正想要的自增字段的值。
————————————————
目前对此Bug的替代性的解决方法是:
专门为取ID进行配置:

相当于执行了两条SQL语句才取得所需的ID值。[e01]
阅读(2341) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~