首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

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

2012-12-29 
ibatis sqlmap插入数据返回数据id问题!-- 插入新话题返回数据id--insert idinserttopic parameterTy

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

热点排行