日期:2014-05-18  浏览次数:20680 次

ibatis3 获得刚插入ID问题
我想用ibatis3获得刚插入数据的ID,我数据库用的是mysql,id设置成的自增,相关代码如下:
  <insert id="save" parameterType="User" useGeneratedKeys="true" keyProperty="id">
  insert into t_user(account, name, password) 
  values(#{account},#{username},#{password})
  <selectKey keyProperty="id" order="AFTER" resultType="Integer">
  select LAST_INSERT_ID()
  </selectKey>
  </insert>

为什么返回值总是1?要怎样写才能获得刚插入那条数据的id?各位大侠帮帮忙....

------解决方案--------------------
SQL code

<insert id="create" parameterClass="paper">
        
        <![CDATA[
            insert into t_test_paper(plan_id,user_id,status,use_yn,chg_user_id,chg_dt)
            values(#plan_id#,#user_id#,#status#,#use_yn#,#chg_user_id#,now())
        ]]>
        <selectKey keyProperty="id" resultClass="int">
            <![CDATA[
                SELECT LAST_INSERT_ID() as id 
            ]]>
        </selectKey>
        
    </insert>

------解决方案--------------------
没用过ibaits

帮顶了

祝你好运
------解决方案--------------------
今天刚好测试了select LAST_INSERT_ID(),感觉不太对劲,但是网上都是用的这个,哎
------解决方案--------------------
Mysql id不是可以自动生成啊, 你不用往里插id不就可以了?
------解决方案--------------------
刚开始接触ibatis,顶起..
------解决方案--------------------
楼主还有用其他的框架么,执行这个时必需要求两个使用同一个CONNECTION,如果不是比如说第二条是一个新的CONNECTION自然结果是1了