# spring-boot-starter-influxdb **Repository Path**: yunmeng/spring-boot-starter-influxdb ## Basic Information - **Project Name**: spring-boot-starter-influxdb - **Description**: influxDB的类mybatis ORM框架 - **Primary Language**: Java - **License**: Not specified - **Default Branch**: feature-starter - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 12 - **Created**: 2022-06-13 - **Last Updated**: 2022-06-13 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # spring-boot-starter-influxdb ## 简介 这是一个InfluxDB的框架,使用方式类似于Mybatis,对influxDB官方工具进行了简易封装,支持使用注解的方式对InfluxDB进行增、删、查操作,需配合Spring Boot使用。 ## 使用方法 1. POM文件添加依赖 ~~~xml io.github.betacatcode spring-boot-starter-influxdb 0.0.4-RELEASE org.influxdb influxdb-java 2.18 ~~~ 2. 配置yml文件 ~~~yaml spring: influx: url: http://127.0.0.1:8086 password: 123456 user: admin mapper-location: com.github.betacatcode ~~~ **其中 mapper-location 是InfluxDB Mapper存放路径** 3. 建立代理mapper的配置类,否则可能会出现注入优先级引起的问题 ~~~ @DependsOn("proxyMapperRegister") @Configuration public class ProxyMapperConfig { } ~~~ 4. 创建表对应实体类(此处使用lombok依赖,也可不使用) ~~~java import lombok.Data; import org.influxdb.annotation.Column; import org.influxdb.annotation.Measurement; import org.influxdb.annotation.TimeColumn; import java.time.Instant; @Data @Measurement(database = "test",name = "student") public class Student { private String id; @Column(name = "sname",tag = true) private String sname; @Column(name = "value") private Double value; @TimeColumn @Column(name = "time") private Instant time; } ~~~ 5. 创建实体类对应Mapper,需继承InfluxDBBaseMapper这个接口 ~~~java public interface StudentMapper extends InfluxDBBaseMapper { @Select(value = "select * from test.autogen.student where sname=#{sname}",resultType = Student.class) List selectByName(String sname); @Delete(value = "delete from student",database = "test") void deleteAll(); @Insert void insertOne(Student student); @Insert void insertBatch(List students); } ~~~ 6. 建立测试类测试 ~~~java @RunWith(SpringRunner.class) @SpringBootTest class InfluxdbAnnotationApplicationTests { @Autowired StudentMapper studentMapper; @Test void contextLoads() { } //单条插入 @Test void testInsertOne(){ Student student1 = new Student(); student1.setSname("ww"); student1.setValue(235.12); student1.setTime(Instant.ofEpochMilli(1640966500000l)); studentMapper.insertOne(student1); } //批量插入 @Test void testInsertBatch(){ Student student1 = new Student(); student1.setSname("zs"); student1.setValue(123.45); student1.setTime(Instant.ofEpochMilli(1640966400000l)); Student student2 = new Student(); student2.setSname("ls"); student2.setValue(666.21); student2.setTime(Instant.ofEpochMilli(1640966300000l)); List studentList = new ArrayList<>(); studentList.add(student1); studentList.add(student2); studentMapper.insertBatch(studentList); } //查询 @Test void testSelect(){ List studentList = studentMapper.selectByName("zs"); for (Student student : studentList) { System.out.println(student); } } //删除 @Test void testDelete(){ studentMapper.deleteAll(); } } ~~~