mybatis插入list的sql语句

	<insert id="insertTrafficPoliceInfoList" parameterType="java.util.List">
		replace into d_traffic_police_info
		(task_id,alarm_time)
		values
		<foreach collection="list" item="item" index="index" separator=",">
			( #{item.taskId, jdbcType=VARCHAR },
              #{item.alarmTime,jdbcType=TIMESTAMP } )
		</foreach>
	</insert>

1、为何用replace替换insert?

当主键相同时,用replace可以更新相同主键的数据,如果用insert则会报错

详见mysql insert插入时实现如果数据表中主键重复则更新,没有重复则插入的四种方法

 

2、<foreach>标签

属性:

collections

必选

该属性指定你要遍历的集合类型,

List默认的名称为“list”、数组(Array)的默认名称为“array”。

item必选,表示本次迭代获取的元素
open 可选,表示该语句以什么开始,最常用的是左括弧’(’,
close可选,表示该语句以什么结束,最常用的是右括弧’)’,
separator可选,mybatis会在每次迭代后给sql语句append上separator属性指定的字符
index可选,在list、Set和数组中,index表示当前迭代的位置,在map中,index代指是元素的key

 

 

 

 

 

 

 

3、<trim>标签

属性    描述
prefix    给sql语句拼接的前缀
suffix    给sql语句拼接的后缀
prefixOverrides    去除sql语句前面的关键字或者字符,该关键字或者字符由prefixOverrides属性指定,假设该属性指定为"AND",当sql语句的开头为"AND",trim标签将会去除该"AND"
suffixOverrides    去除sql语句后面的关键字或者字符,该关键字或者字符由suffixOverrides属性指定
 

4、jdbcType

指定jdbcType可以在对象的某个属性值为空时,sql不报错

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值