mybatis返回自增id

J2EE 码拜 10年前 (2015-04-07) 2344次浏览 0个评论

我在用mybatis返回自增id时一直返回1,好像是只返回了插入条数,没返回我需要的自增id。请帮我看下问题出在哪里?
这是insert语句,数据库用的是mysql
<insert id=”insertIndentid” parameterType=”java.util.HashMap” useGeneratedKeys=”true”>
insert into indentid (user_name,total_int_price,total_out_price,date) 
values(#{user_name},#{total_int_price},#{total_out_price},#{date})
<selectKey resultType=”Long” order=”AFTER” keyProperty=”indentid_id”>
SELECT LAST_INSERT_ID() AS indentid_id
</selectKey>
</insert>
Dao接口
public Integer insertIndentid(HashMap map);
Biz
Integer indentid_id = sailDao.insertIndentid((HashMap)map);
System.out.println(indentid_id);
控制台输出信息
[INFO]: class action.core.SailAction
1
返回值我试过int   java.lang.Integer等等,但是都是返回1。问题出在哪里呢?

来大神帮我看一下。

mybatis返回自增id
使用的是什么数据库,好像mysql支持返回的最新的id,oracle不支持。
mybatis返回自增id
mybatis 不支持返回自增id, ibatis是可以的

mybatis返回自增id
20分
可以通过设置parameterType是对应表的对象类型,在执行完insert后,通过对象属性取值获取自增主键值
mybatis返回自增id
不是哪里出了问题,而是mybatis本来就不支持返回自增主键。。。
mybatis返回自增id
20分
嗯,返回值都是1,那是添加成功记录,返回的ID在参数里面,map里取值
mybatis返回自增id
返回1,是表示返回了数据库受影响的行数,也就是你插入了一条数据,而不会放回自增的id。
mybatis返回自增id
引用 5 楼 qq_21925609 的回复:

嗯,返回值都是1,那是添加成功记录,返回的ID在参数里面,map里取值

请问返回的id在哪里参数里,应该怎么取到它

mybatis返回自增id
引用 3 楼 benluobobo 的回复:

可以通过设置parameterType是对应表的对象类型,在执行完insert后,通过对象属性取值获取自增主键值

引用 5 楼 qq_21925609 的回复:

嗯,返回值都是1,那是添加成功记录,返回的ID在参数里面,map里取值

谢谢三楼和五楼,原来返回值里面返回的是成功执行的次数。
id需要自己从传入参数中获取

BIZ
sailDao.insertIndentid((HashMap)map);
System.out.println(map.get(“indentid_id”));

控制台
[INFO]: class action.core.SailAction
100007
问题解决,结贴了


CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明mybatis返回自增id
喜欢 (0)
[1034331897@qq.com]
分享 (0)

文章评论已关闭!