<insert id="insertUser" parameterClass="userDo" > <![CDATA[ INSERT INTO T_USER ( NAME, SEX) VALUES ( #name#, #sex# ) ]]> <selectKey resultClass="int" keyProperty="id" > SELECT @@IDENTITY AS ID </selectKey> </insert>
在使用ibatis插入一条新数据时,往往希望返回新数据的id,使用以上办法,能够在数据插入数据库后返回新数据的id。
<selectKey resultClass="int" keyProperty="id" > SELECT @@IDENTITY AS ID </selectKey>
!!!但是当使用批量插入时,就无法返回新插入的id了!!!
!! 使用以上方法,会使得插入后的Domain对象的id被设置为新插入的id值,大部分情况我们是希望这样做的。当然也有例外,当我们不想得到这样的结果时,我们可以去掉keyProperty=“id”这部分,这样既可以以结果的形式返回插入的id,又不会自动设置我们的Domain对象的id !!