mybatis使用數據庫id自增長插入數據並獲取剛插入的數據的id

<insert id="addProduct" parameterMap="parameterProductMap">
    <!-- 獲取剛插入的product的自動生成的主鍵id;(用來插入food表的product_id)-->
    <selectKey keyProperty="id" resultType="int" order="AFTER">
            SELECT LAST_INSERT_ID() AS ID 
    </selectKey>
        insert into product (product_name,description,add_time
        ,fixed_price,dangqian_price,keywords,product_pic)
        values(#{product_name},#{description},#{add_time},#{fixed_price},#{dangqian_price},#{keywords},#{product_pic})
</insert>

其中

keyProperty爲實體類pojo中id對應的屬性名; 

resultType爲屬性的數據類型;

order="AFTER"表示在插入語句結束後返回該id值,BEFORE爲在插入之前獲取id值,一般用AFTER,因爲有可能插入時發生異常,導致數據沒有插進去,如果先獲取id的話,有可能導致業務邏輯出錯.


方法二:

<!--插入program  -->
<insert id="addLedProgram" parameterType="LedProgram" useGeneratedKeys="true" keyProperty="p_id">
	insert into ledProgram 
	(u_id,p_name,p_info,p_state,p_ip,p_width,p_height,p_colourType) 
	values  
	(#{u_id},#{p_name},#{p_info},#{p_state},#{p_ip},#{p_width},#{p_height},#{p_colourType})	
</insert>
其中:

useGeneratedKeys="true" 表示使用數據庫的主鍵自增長機制

keyProperty="p_id" 表示把數據庫自動生成的主鍵值賦值給實體類的p_id屬性



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章