背景:目前有個插入語句須要獲取插入記錄的id 由於id是自增加的,因此要在插入後返回這個idapp
錯誤1:spa
mapper.xml:code
<!-- 新增 返回自增加id--> <insert id="save" parameterType="pd" resultType="int"> insert into sys_push( username,title,content,publisher,pushtime ) values ( #{username},#{title},#{content},#{publisher},#{pushtime} ) </insert>
我天真的覺得 須要用resultType返回一個int類型的,結果項目啓動直接報錯了,由於insert方法根本就沒有resultType! 哎 基礎不紮實啊。。。xml
以後百度了下 哦 原來返回id是這麼用的對象
正確: keyProperty="id" useGeneratedKeys="true"get
<!-- 新增 返回自增加id--> <insert id="save" keyProperty="id" useGeneratedKeys="true" parameterType="pd"> insert into sys_push( username,title,content,publisher,pushtime ) values ( #{username},#{title},#{content},#{publisher},#{pushtime} ) </insert>
從新啓動後 調用查詢語句發現:it
int id = pushService.save(pd);
怎麼id都是1。。。。class
錯誤2:基礎
又百度了一下,原來insert這個返回值返回的是插入成功的條數,不是id啊。。。哎 基礎不紮實啊。。。百度
正確:
在查詢後,要獲取的id其實已經在傳入對象的參數裏了,用xx.getId()方法就能夠直接獲取到了。
int insertNum = pushService.save(pd);//插入的條數 Long id = (Long) pd.get("id");//獲取id
我這裏傳入的是封裝的pd對象,獲取方法是get("id")
若是是傳入user類,獲取方式是 Long id = user.getId();//該對象的自增ID
注意: 返回的id是long類型
over!