Ibatis怎么返回insert时的主键
1.数字类型 和 自动增长的就不用说了
2.我要说的是 我现在的主键是字符串类型的 怎么获取
谢谢了
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
1.数字类型 和 自动增长的就不用说了
2.我要说的是 我现在的主键是字符串类型的 怎么获取
谢谢了
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(9)
@邓颖 啊.不好意思.没看见你的主键是String类型的.我没弄过非int的. 那我想问下:你的主键是怎么生成的? 只要是通过sql能写出来的,做法和int应该类似.resultClass="string".里面把生成id的sql包进去.
在insert里面加入selectKey标签就可以了. 一般都是返回的int类型.对应数据库是自增长字段.
要注意的是: ibatis会直接返回int值. Mybatis则把int值包装在参数对象里面.
public int insert(User user) {
//ibatis方式.
int result = UserMapper.insert(user);
return result;
//Mybatis方式
user = UserMapper.insert(user);
return user.getId();
}
还要注意的是数据库类型不一样,生成ID的策略也不一样. 可以对selectKey添加属性(名字忘记了), pre---先生成ID. post---后生成ID. default是post.
{id=0, name=45}
你执行了insert
java.lang.String
你用控制台insert一条,看看select last_insert_id()能取到东西吗
一样用last_insert_id啊
<selectKey resultType="int" keyProperty="id">
<![CDATA[SELECT LAST_INSERT_ID() AS id ]]>
</selectKey>
这个是mybatis的,ibatis的大同小异
这种我试了啊 不行的 返回的是0
回复
我遇到一样的问题了,返回值一直是0,你解决这问题了吗?麻烦告知一下。Please Email to me:jakeyouxiang@126.com
一样用last_insert_id啊
<selectKey resultType="int" keyProperty="id">
<![CDATA[SELECT LAST_INSERT_ID() AS id ]]>
</selectKey>
这个是mybatis的,ibatis的大同小异