首页 > 学院 > 开发设计 > 正文

mybatis 对 oracle 的批量操作,

2019-11-14 10:02:43
字体:
来源:转载
供稿:网友

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的一样。


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表