先说明我用的是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