您的位置:首页 > 其它

Mybatis实现insert获取自增id

2016-04-27 13:17 405 查看
先说明我用的是MySQL,其他的没使用过,也帮不上了~~

首先要先解决思维误区吧,我在搜索了一些资料之后以为写一个这样的xml

<insert id="insertNoticeMessage" parameterType="BaseNoticeMessage" useGeneratedKeys="true" keyProperty="msgId" keyColumn="msgid">


insert就会返回我自增id值,本项目对应这msgid,然而一直返回1。

insert返回的只是insert方法的情况 1成功 0失败

所以自增id只能返回给你insert的类中,自然你insert类需要有一个对应的属性最好~我这里就是msgId

使用方法如下

int res = BaseNoticeMessageDAO.insert(baseNoticeMsg);
int msgId = baseNoticeMsg.getMsgId();


msgId就是你希望得到的自增id

res只是insert的结果

当然上面的xml还可以这么写

<insert id="insertNoticeMessage" parameterType="BaseNoticeMessage">
<selectKey order="AFTER" keyProperty="msgId" resultType="int">
SELECT LAST_INSERT_ID()
</selectKey>
INSERT INTO noticemessage(userid)
VALUES (#{userId})
</insert>


明显要稍微麻烦一些。多的就不说了,不懂的话看看官网吧。参考资料

http://www.mybatis.org/mybatis-3/zh/getting-started.html

http://www.ghostsf.com/java/227.html

http://www.mybatis.org/mybatis-3/zh/sqlmap-xml.html

http://stackoverflow.com/questions/12103606/get-the-id-of-last-inserted-record-in-mybatis
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息