当前位置: 代码迷 >> Java Web开发 >> ibatis sql地图 插入数据返回数据id有关问题
  详细解决方案

ibatis sql地图 插入数据返回数据id有关问题

热度:9800   发布时间:2013-02-25 21:06:22.0
ibatis sqlmap 插入数据返回数据id问题
	<!-- 插入新话题  返回数据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)


这个倒是,平常都是序列肯定写在前面的! <selectKey resultType="long" keyProperty="ID" order="AFTER"> 
   ……
</selectKey>
你没有加order属性,所以是先执行返回id的语句,后执行insert语句,永远都是1(插入一行,所以返回1)
引用:
引用:
<selectKey resultType="long" keyProperty="ID" order="AFTER"> 
   ……
</selectKey>
你没有加order属性,所以是先执行返回id的语句,后执行insert语句,永远都是1(插入一行,所以返回1)

这个倒是,平常都是序列肯定写在前面的!
+1
  相关解决方案