增加数据批量插入接口

方式一.

1.增加Mapper.xml内容
<insert id="insertDataHistoryBatch" parameterType="java.util.List" useGeneratedKeys="true" keyProperty="id">
    INSERT INTO data_history
    (id, ts, value, name, unit)
    VALUES
    <foreach collection="list" item="item" separator=",">
        (
        #{item.id},
        #{item.ts},
        #{item.value},
        #{item.name},
        #{item.unit}
        )
    </foreach>
</insert>
2.接口interface Mapper
public int insertDataHistoryBatch(List<DataHistory> dataItems);
3.接口interface IDataHistoryService
public int insertDataHistoryBatch(List<DataItem> dataItems);
4.接口实现DataHistoryServiceImpl
@Override
public int insertDataHistoryBatch(List<DataItem> dataItems) {

    int insertedCount =DataHistoryMapper.insertRobotSensorMetricDataHistoryBatch(dataHistories);
     return insertedCount;
}

增加时间区间查询

xml加beginTs,endTs

<select id="selectDataHistoryList" parameterType="DataHistoryQueryParam" resultMap="DataHistoryResult">
    <include refid="selectDataHistoryVo"/>
    <where>
        <if test="metricId != null "> and a.metric_id = #{metricId}</if>
        <if test="beginTs != null"> and a.ts >= #{beginTs}</if>
        <if test="endTs != null"> and a.ts &lt;= #{endTs}</if>
    </where>
</select>

请求实体增加相应字段


public class DataHistoryQueryParam {
    // 开始时间
    private Date beginTs;
    // 结束时间
    private Date endTs;
}

参考:浅谈MyBatis批量插入方法,10w条数据处理仅需2秒-腾讯云开发者社区-腾讯云
https://cloud.tencent.com/developer/article/2187205

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐