java为什么所有my_值都保存为字符串而不是浮点数?
湿度和温度值保存为数据库中的字符串。在将POJO写入XDB时,我没有收到错误或异常。有办法解决这个问题吗
@Override
public void process(Event event) {
try {
WriteApiBlocking writeApi = client.getWriteApiBlocking();
writeApi.writeMeasurement(WritePrecision.S, factory.getSensorDTO(SensorType.DHT11, event));
} catch (InfluxException ie) {
ie.printStackTrace();
logger.error("Check if the database service is running.");
}
}
@Measurement(name = "DHT11")
public class DHT11 implements Sensor {
private final SensorType type = SensorType.DHT11;
@Column(tag = true)
private int deviceId;
@Column
private float humidity;
@Column
private float temperature;
public DHT11(Event event) {
TempEvent e = (TempEvent) event.getEvent();
try {
this.temperature = e.getTemperature();
this.humidity = e.getHumidity();
this.deviceId = e.getDeviceId();
} catch (NullPointerException npe) {
npe.printStackTrace();
}
}
public SensorType getType() {
return this.type;
}
}
# 1 楼答案
我发现:
https://community.influxdata.com/t/unable-to-use-type-float-solved/7157
回答:使用
double
奇怪的是
float
和Float
有非常不同的行为。我想我会写这篇文章,因为以后可能会有人偶然发现这篇文章,浪费时间。希望这对将来的人有所帮助我在这里提交了一个bug:https://github.com/influxdata/influxdb-client-java/issues/293