mybatis 插入語句 返回自增加id方法

背景:目前有個插入語句須要獲取插入記錄的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!

相關文章
相關標籤/搜索