springboot 集成influxDb,插入两条数据,只保存了后一条

hello,好久不见,金三银四,希望大家面试成功,冲啊~~

问题描述

代码功能:新增两条student数据到influxdb数据库中
问题:每次运行代码都是新增一条记录

方法一

     /**
     * 新增单条记录,利用java的反射机制进行新增操作
     */
    public void insertOne(Object obj,String DB){
        //获取度量
        Class<?> clasz = obj.getClass();
        Measurement measurement = clasz.getAnnotation(Measurement.class);
        //构建
        Point.Builder builder = Point.measurement(measurement.name());
        // 获取对象属性
        Field[] fieldArray = clasz.getDeclaredFields();
        Column column = null;
        for(Field field : fieldArray){
            try {
                column = field.getAnnotation(Column.class);
                //设置属性可操作
                field.setAccessible(true);
                if(column.tag()){
                    //tag属性只能存储String类型
                    builder.tag(column.name(), field.get(obj).toString());
                }else{
                    //设置field
                    if(field.get(obj) != null){
                        builder.addField(column.name(), field.get(obj).toString());
                    }
                }
            } catch (IllegalArgumentException | IllegalAccessException e) {
                log.error("insertOne err={}", e.getMessage());
            }
        }
        builder.time(System.nanoTime(), TimeUnit.NANOSECONDS);
        influxDB.write(DB,"autogen",builder.build());
    }

一、其实两条记录都插入到influxdb数据库中了,只不过数据产生的时间戳一样,time相同的后来数据就会覆盖之前的数据,只要设置不同的time就这解决问题。

设置时间代码:
builder.time(System.nanoTime(), TimeUnit.NANOSECONDS);

看网上很多人改了这个就可以了,结果我本来应该生成两条数据,生成了4条😭,如果你和我一样,那就继续往下看,下面这个是我解决这个问题的方法

方法二

@Measurement(name = "exportData")
public class ExportData {
    @Column(name="deviceId")
    private String deviceId;

    @Column(name="ossURL",tag=true)
    private String ossURL;

    @Column(name="filename")
    private String filename;

    @Column(name="title")
    private String title;

    @Column(name="createTime")
    private long createTime;
}

二、如果重新设置了time无效,就将作为唯一标示的字段url 作为tag。我代码中两条数据的deviceId是一致的,然后把deviceId设成tag了,怀疑有影响,结果换了一个字段就好了
宝贝们冲啊

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

哩哩啦啦’

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值