1.DevControlMapper语句
int insertByBatch(List<DevControl> devControlList);
2.DevControlMapper.xml
<insert id ="insertByBatch" parameterType="java.util.List">
<selectKey resultType ="java.lang.Integer" keyProperty= "id"
order= "AFTER">
SELECT LAST_INSERT_ID()
</selectKey >
insert into devcontrol
(DEV_ID, COM_TYPE, COM_VALUE, COM_REC_DT,IS_EXED)
values
<foreach collection ="list" item="item" index= "index" separator =",">
( #{item.devId}, #{item.comType},#{item.comValue},#{item.comRecDt},#{item.isExed})
</foreach >
</insert>
3.业务代码
@Override
public int saveDeviceControl(String devId, String comType, String comlValue) {
List<DevControl> list = new ArrayList<>();
String[] devIdArray = devId.split("\\,");
for(int i = 0;i < devIdArray.length;i++){
DevControl devControl = new DevControl();
devControl.setDevId(Integer.valueOf(devIdArray[i]));
devControl.setComType(comType);
devControl.setComValue(comlValue);
devControl.setComRecDt(new Date());
devControl.setIsExed(false);
list.add(devControl);
}
int num = devControlMapper.insertByBatch(list);
return num;
}
ps:标红的是mysql表设置id自增,insert语句要注意:不是null的字段字段必须要有值,换句话就是字段对应的对象的属性必须赋值
时间插入的小技巧:
可以用java代码给对象赋值new Date(),也可以用mysql的时间函数now(),sysdate()
我这用的是第一种,第二种就是标蓝色的可以用mysql日期函数now()表示
devcontrol结构如下: