永发信息网

mybatis @SelectKey @Options 无法返回自己增长的id,一直返回1

答案:2  悬赏:40  手机版
解决时间 2021-02-13 13:57
使用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);
最佳答案
把SysCity的id属性改为long就好了,为啥要用short,mysql里头的无符号int对应得实java里头的long。saveForId操作完,自增的id就写入到obj对象的id里头了,直接去这里取就行。
全部回答
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
广西中浩房地产开发公司怎么去啊,有知道地址
我想去苏州缥缈峰玩,我在网上买了票,怎么坐
cm10/16.3是什么意思机加工
本人已经去世了银行卡消磁了,身份证也注销了
洗车人家汽车美容(辽宁阜新店)地址有知道的么
建设南新路怎么去啊,有知道地址的么
steam龙珠超宇宙2怎么运行不了
碳酸钙为什么是亲水性物质,不是难溶于水吗
微生物技术有什么
男朋友最喜爱户外越野,生日要到了,送什么有
谁知道(曲中人散却写下不会结局)的情侣网名
朋友家洗车行地址有知道的么?有点事想过去
大连船舶工业工程公司应届本科生去做什么,待
c1驾照实习期没开过车怎么办算过实习期吗
0268756鸽子身上的编号?
推荐资讯
金典大酒店(无锡惠山区)地址有知道的么?有点
火线精英有逆鳞的好号和密码
中国的电视机能达到60帧吗
辣小嘴怎么去啊,有知道地址的么
瑞兴达汽车服务中心地址在什么地方,想过去办
顷好坊饰品我想知道这个在什么地方
崔智友演过的电视剧有一首歌的歌词里有 i bel
描写冬天雪景的段落
最后一个字是谈的成语有哪些???
2019年新课程学习与测评单元双测七年级英语上
求一道小学5年级体积的题
汽车空调高低接口保护帽
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?