TDengine实现多表批量插入

TDengine实现多表批量插入

有问题欢迎一起讨论

Mapper类

@Mapper
public interface WavePixelMapper {
int addSpo2MapBatch(@Param("spo2List") List<WavePixelDataDo> spo2List,
                        @Param("respList") List<WavePixelDataDo> respList,
                        @Param("co2pList") List<WavePixelDataDo> co2pList,
                        @Param("ecgList") List<WavePixelDataDo> ecgList);
                        }

xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">

<mapper namespace="com.wisonic.monitor.infrastructure.mapper.WavePixelMapper">

	<insert id="addSpo2MapBatch" parameterType="java.util.List">
      insert into
        k1506010900000001_spo2 (ts,pixel) values
             <foreach separator=" " collection="spo2List" item="wavePixelDataDo" >
                ('${wavePixelDataDo.ts}','${wavePixelDataDo.pixel}')
             </foreach>
        k1506010900000001_resp (ts,pixel) values
            <foreach separator=" " collection="respList" item="wavePixelDataDo" >
                ('${wavePixelDataDo.ts}','${wavePixelDataDo.pixel}')
            </foreach>
        k1506010900000001_co2(ts,pixel) values
            <foreach separator=" " collection="co2pList" item="wavePixelDataDo" >
                ('${wavePixelDataDo.ts}','${wavePixelDataDo.pixel}')
            </foreach>
        k1506010900000001_ecg(ts,pixel) values
            <foreach separator=" " collection="ecgList" item="wavePixelDataDo" >
                ('${wavePixelDataDo.ts}','${wavePixelDataDo.pixel}')
            </foreach>
    </insert>
    
</mapper>

编写测试接口

@Slf4j
@Controller
public class TestController {
    @Autowired
    private WavePixelMapper wavePixelMapper;
    @ResponseBody
    @RequestMapping("test2")
    public String batchInsertPixelTest(){
        List<WavePixelDataDo> wavePixelDataDos = new ArrayList<>();
        long start = System.currentTimeMillis();
        for (int i = 0; i < 65; i++) {
            WavePixelData wavePixelData = new WavePixelData(30, 15);
            wavePixelDataDos.add(new WavePixelDataDo(new Timestamp(System.currentTimeMillis()+i), JSONObject.toJSONString(wavePixelData)));
        }
        wavePixelMapper.addSpo2MapBatch(wavePixelDataDos,wavePixelDataDos,wavePixelDataDos,wavePixelDataDos);
        byte[] bytes = wavePixelDataDos.get(0).getPixel().getBytes();
        log.info(String.valueOf(bytes.length));
        long end = System.currentTimeMillis();
        log.info(end-start+"毫秒");

        return end-start+"毫秒"+"-----"+String.valueOf(bytes.length);
    }
}

测试结果:
在这里插入图片描述

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值