1:返回插入新数据的主键(主键序列自增)
<insert id="saveLanguageType" parameterType="map" flushCache="false"> <selectKey resultType="java.lang.String" order="BEFORE" keyPRoperty="ID"> SELECT SQ_SYS.Nextval AS ID from DUAL </selectKey> insert into sys_language_type ( ID, UPDATE_TIME ) values ( #{ID}, #{UPDATE_TIME} ) </insert>获取方式:map.get("ID");2:批量插入 传入参数list
注:需配置 useGeneratedKeys="false",才用自定义主键。虽默认为false,但是还是需要配置。
<insert id="saveLanguagekeyValue" parameterType="java.util.List" useGeneratedKeys="false" flushCache="false"> insert into table ( ID, UPDATE_TIME ) SELECT SQ_SYS.NEXTVAL AS ID, A.* FROM ( <foreach collection="list" item="item" index="index" separator="UNION ALL"> SELECT #{item.UPDATE_TIME} FROM dual </foreach> ) A </insert>解释:将数据存放在虚表中读出来对应的序列值也就是自增长的ID,在进行插入语句。3:批量更新 传入参数list
注:与MySQL的区别是在语句前后加 begin ;end;
<update id="Updates" parameterType="java.util.List" flushCache="false"> begin <foreach collection="list" item="item" index="index" open="" close="" separator=";"> update table <set> UPDATE_TIME =${item.UPDATE_TIME} </set> where ID =${item.ID} </foreach> ;end; </update>4:批量删除 与 MySQL的一样。
新闻热点
疑难解答