mybatis中批量插入的sql语法(Oracle)
前言
在企业开发中比如开发一个后台管理系统,会存在批量插入菜单,或者批量插入用户的语法,如果使用Java代码进行for循环进行插入,不仅影响效率,代码看着也不够优雅
下面就展示一下实际开发中的真实案例,开发中与定位设备进行对接,定时会发送批量的坐标,所以需要进行批量插入到数据库中
一、使用步骤
1. 实体类展示
代码如下(示例):
@ApiModel(description = "指挥调度出所经纬表")
@TableName("CAD_OUT_PRISON_LON_LAT")
@Data
public class TCadOutPrisonLonLat extends Model<TCadOutPrisonLonLat> {
private BigDecimal id;
private String longitude;
private String latitude;
private String address;
private String spotDescribe;
private String picFile;
private String timeStamp;
private String status;
private BigDecimal manageId;
private String initiator;
//速度
private String speed;
//设备类型
private String unitType;
}
2.mapper.java代码
代码如下(示例):
int insertList(@Param("outList")List<TCadOutPrisonLonLat> outList);
3.mapper.xml代码
代码如下(示例):
insert all
<if test="outList!=null and outList.size()>0">
<foreach collection="outList" item="rNos" separator=' '>
into cad_out_prison_lon_lat VALUEs (#{rNos.id},#{rNos.longitude},#{rNos.latitude},#{rNos.address},#{rNos.spotDescribe},#{rNos.picFile},#{rNos.timeStamp},#{rNos.status},#{rNos.manageId},#{rNos.initiator})
</foreach>
select 1 from dual
</if>
4.调用
在service层将数据封装好,直接调用mapper层的代码即可实现批量插入
这里仅展示了oracle的批量插入语法,mysql也是类似的
总结
以上就是今天要讲的内容,如果觉得还可以,可以关注一下我,非常感谢,下面是我的公众号