С выпуском последней версии драйвера InfluxbMapper пришла новая версия драйвера influenxdb-java.
Для начала нам нужно раскрутить экземпляр influenxdb, и docker — самый простой способ сделать это. Мы просто следуем инструкциям, описанным здесь .
Теперь у нас есть база данных с некоторыми данными, и мы готовы выполнить наши запросы.

У нас есть мера h2o_feet
| 
 01 
02 
03 
04 
05 
06 
07 
08 
09 
10 
 | 
> SELECT * FROM "h2o_feet"name: h2o_feet--------------time                   level description      location       water_level2015-08-18T00:00:00Z   below 3 feet           santa_monica   2.0642015-08-18T00:00:00Z   between 6 and 9 feet   coyote_creek   8.12[...]2015-09-18T21:36:00Z   between 3 and 6 feet   santa_monica   5.0662015-09-18T21:42:00Z   between 3 and 6 feet   santa_monica   4.938 | 
Поэтому мы создадим модель для этого.
| 
 01 
02 
03 
04 
05 
06 
07 
08 
09 
10 
11 
12 
13 
14 
15 
16 
17 
18 
19 
20 
21 
22 
23 
24 
25 
26 
27 
28 
29 
30 
31 
32 
33 
34 
35 
36 
37 
38 
39 
40 
41 
42 
43 
44 
45 
46 
47 
48 
49 
50 
51 
52 
53 
54 
55 
 | 
package com.gkatzioura.mapper.showcase;import java.time.Instant;import java.util.concurrent.TimeUnit;import org.influxdb.annotation.Column;import org.influxdb.annotation.Measurement;@Measurement(name = "h2o_feet", database = "NOAA_water_database", timeUnit = TimeUnit.SECONDS)public class H2OFeetMeasurement {    @Column(name = "time")    private Instant time;    @Column(name = "level description")    private String levelDescription;    @Column(name = "location")    private String location;    @Column(name = "water_level")    private Double waterLevel;    public Instant getTime() {        return time;    }    public void setTime(Instant time) {        this.time = time;    }    public String getLevelDescription() {        return levelDescription;    }    public void setLevelDescription(String levelDescription) {        this.levelDescription = levelDescription;    }    public String getLocation() {        return location;    }    public void setLocation(String location) {        this.location = location;    }    public Double getWaterLevel() {        return waterLevel;    }    public void setWaterLevel(Double waterLevel) {        this.waterLevel = waterLevel;    }} | 
И мы получим все записи измерения h2o_feet.
| 
 01 
02 
03 
04 
05 
06 
07 
08 
09 
10 
11 
12 
13 
14 
15 
16 
17 
18 
19 
20 
21 
22 
23 
 | 
package com.gkatzioura.mapper.showcase;import java.util.List;import java.util.logging.Logger;import org.influxdb.InfluxDB;import org.influxdb.InfluxDBFactory;import org.influxdb.impl.InfluxDBImpl;import org.influxdb.impl.InfluxDBMapper;public class InfluxDBMapperShowcase {    private static final Logger LOGGER = Logger.getLogger(InfluxDBMapperShowcase.class.getName());    public static void main(String[] args) {        InfluxDBMapper influxDBMapper = new InfluxDBMapper(influxDB);        List h2OFeetMeasurements = influxDBMapper.query(H2OFeetMeasurement.class);    }} | 
После успешного получения данных мы продолжим работу с постоянными данными.
| 
 01 
02 
03 
04 
05 
06 
07 
08 
09 
10 
11 
12 
 | 
H2OFeetMeasurement h2OFeetMeasurement = new H2OFeetMeasurement();        h2OFeetMeasurement.setTime(Instant.now());        h2OFeetMeasurement.setLevelDescription("Just a test");        h2OFeetMeasurement.setLocation("London");        h2OFeetMeasurement.setWaterLevel(1.4d);        influxDBMapper.save(h2OFeetMeasurement);        List measurements = influxDBMapper.query(H2OFeetMeasurement.class);        H2OFeetMeasurement h2OFeetMeasurement1 = measurements.get(measurements.size()-1);        assert h2OFeetMeasurement1.getLevelDescription().equals("Just a test"); | 
Очевидно, что выборка всех измерений для получения последней записи — не самая эффективная вещь. В следующих уроках мы увидим, как мы используем InfluxDBMapper с расширенными запросами InfluxDB.
| 
 Опубликовано на Java Code Geeks с разрешения Эммануила Гкациоураса, партнера нашей программы JCG. См. Оригинальную статью здесь: Руководство по InfluxDBMapper и QueryBuilder для Java. Часть 1 Мнения, высказанные участниками Java Code Geeks, являются их собственными.  |