使用mybatis做简单查询,直接通过接口方法的注解的形式编写mybatis的mysql语句,但是现在需要能返回自增长的id,但是如下代码一直无法返回自增长的id。SelectKey语句确实有获取到自增长的id,因为我的id比较长,我用resultType = short.class 会报错,说short 不够大,然后报错信息打印出来的id确实是我要返回的id,但是他没有通过函数的返回值给我,只是返回了一个1,跪求大神指点
@Insert("insert into sys_city( name , parent_id , short_name , level_type , city_code ,
post_code , merger_name , lng , lat , spell , state , create_time , update_time ,
is_delete ) values (#{obj.name}, #{obj.parentId}, #{obj.shortName}, #
{obj.levelType}, #{obj.cityCode}, #{obj.postCode}, #{obj.mergerName}, #
{obj.lng}, #{obj.lat}, #{obj.spell}, #{obj.state}, #{obj.createTime}, #
{obj.updateTime}, #{obj.isDelete} ) ") @SelectKey(before=false,keyProperty="obj.id",statementType=StatementType.STATE
MENT,statement="SELECT LAST_INSERT_ID() AS id", resultType =
short.class)
@Options(useGeneratedKeys = true,keyColumn="obj.id")
public int saveForId(@Param("obj")SysCity obj);
mybatis @SelectKey @Options 无法返回自己增长的id,一直返回1
答案:2 悬赏:40 手机版
解决时间 2021-02-13 13:57
- 提问者网友:椧運幽默
- 2021-02-13 09:10
最佳答案
- 五星知识达人网友:妄饮晩冬酒
- 2021-02-13 10:10
把SysCity的id属性改为long就好了,为啥要用short,mysql里头的无符号int对应得实java里头的long。saveForId操作完,自增的id就写入到obj对象的id里头了,直接去这里取就行。
全部回答
- 1楼网友:大漠
- 2021-02-13 11:00
额
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯