Oracle:java
<insert id="insert" parameterType="vo.Category"> <selectKey resultType="java.lang.Short" order="BEFORE" keyProperty="id"> SELECT SEQ_TEST.NEXTVAL FROM DUAL </selectKey> insert into category (id,name_zh, parent_id, show_order, delete_status, description ) values ( #{id,jdbcType=NUMBER}, #{nameZh,jdbcType=VARCHAR}, #{parentId,jdbcType=NUMBER}, #{showOrder,jdbcType=NUMBER}, #{deleteStatus,jdbcType=NUMBER}, #{description,jdbcType=VARCHAR} ) </insert>
MySQL:
針對自增主鍵的表,在插入時不須要主鍵,而是在插入過程自動獲取一個自增的主鍵,好比MySQL,能夠採用以下兩種配置方式:
mysql
<insert id="insert" parameterType="vo.Category" useGeneratedKeys="true" keyProperty="id"> insert into category (id,name_zh, parent_id, show_order, delete_status, description ) values ( #{id,jdbcType=INTEGER}, #{nameZh,jdbcType=VARCHAR}, #{parentId,jdbcType=INTEGER}, #{showOrder,jdbcType=INTEGER}, #{deleteStatus,jdbcType=BIT}, #{description,jdbcType=VARCHAR} ) </insert>
或
sql
<insert id=" insert " parameterType="vo.Category"> <selectKey resultType="java.lang.Short" order="AFTER" keyProperty="id"> SELECT LAST_INSERT_ID() AS id </selectKey> insert into category (id,name_zh, parent_id, show_order, delete_status, description ) values ( #{id,jdbcType=INTEGER}, #{nameZh,jdbcType=VARCHAR}, #{parentId,jdbcType=INTEGER}, #{showOrder,jdbcType=INTEGER}, #{deleteStatus,jdbcType=BIT}, #{description,jdbcType=VARCHAR} ) </insert>
UUID:數據庫
在Oracle中:函數
<insert id="insert" parameterType="com.xxx.SystemDepartment"> <selectKey keyProperty="id" resultType="String" order="BEFORE"> select sys_guid() from dual </selectKey> insert into SYSTEM_DEPARTMENT (ID,DEPNAME, SUPERID, SORT, STATE) values ( #{id,jdbcType=VARCHAR},#{depname,jdbcType=VARCHAR}, #{superid,jdbcType=DECIMAL}, #{sort,jdbcType=DECIMAL}, #{state,jdbcType=DECIMAL}) </insert>
在Mysql中:ui
<insert id="insert" parameterType="com.xxx.SystemDepartment"> <selectKey keyProperty="id" resultType="String" order="BEFORE"> SELECT UUID() </selectKey> insert into SYSTEM_DEPARTMENT (ID,DEPNAME, SUPERID, SORT, STATE) values ( #{id,jdbcType=VARCHAR},#{depname,jdbcType=VARCHAR}, #{superid,jdbcType=INTEGER}, #{sort,jdbcType=INTEGER}, #{state,jdbcType=INTEGER}) </insert>
注:UUID如不須要連字符'-'可使用數據庫函數進行處理,如mysql: select replace(uuid(),'-','') UUID ;spa