<!-- 插入新话题 返回数据id -->
<insert id="inserttopic" parameterType="map">
insert into topic (
TITLE,
<if test="FOREIGN_KEY != null and FOREIGN_KEY != ''">FOREIGN_KEY,</if>
CREATE_TIME
)values(
#{TITLE},
<if test="FOREIGN_KEY != null and FOREIGN_KEY != ''">#{FOREIGN_KEY},</if>
now()
)
<selectKey resultType="long" keyProperty="ID" >
SELECT @@IDENTITY AS ID
</selectKey>
</insert>
在google上了解到这样可以返回插入数据的id 但是我在测试过程中返回的结果是1 数据插入成功了,并没有返回自增的主键id 不知道什么原因 求教高手,,急,,在线等,谢谢了。
mysql数据库 topic 表主键ID为自增长。Google到什么你都敢往里粘,那个SQL是SQLServer的。
MySQL:
<selectKey resultType="java.lang.Long" order="AFTER" keyProperty="id">
SELECT LAST_INSERT_ID()
</selectKey>
这个倒是,平常都是序列肯定写在前面的! <selectKey resultType="long" keyProperty="ID" order="AFTER">
……
</selectKey>
你没有加order属性,所以是先执行返回id的语句,后执行insert语句,永远都是1(插入一行,所以返回1)+1