Springboot整合IoTB的实现示例

 更新时间:2025年12月23日 10:40:47   作者:moxiaoran5753  
本文主要介绍了Springboot整合IoTB的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

一、引入依赖

 <!--引入iotdb session依赖-->
<dependency>
	<groupId>org.apache.iotdb</groupId>
	<artifactId>iotdb-session</artifactId>
	<version>1.3.2</version>
</dependency>

二、配置IotDB连接

iotdb:
  username: root
  password: root
  ip: 192.168.56.10
  port: 6667
  #批量操作数量
  maxSize: 200

三、创建配置类

import lombok.extern.slf4j.Slf4j;
import org.apache.iotdb.session.pool.SessionPool;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;


@Configuration
@Slf4j
public class IotDBSessionConf {

    @Value("${iotdb.username}")
    private String username;

    @Value("${iotdb.password}")
    private String password;

    @Value("${iotdb.ip}")
    private String ip;

    @Value("${iotdb.port}")
    private int port;

    @Value("${iotdb.maxSize}")
    private int maxSize;

    //Session线程池
    private static SessionPool pool;

    @Bean
    public SessionPool initSessionPool() {

        if(pool==null) {

            log.info(">>>>>SessionPool初始化....");

            pool =
            new SessionPool.Builder()
                    .user(username)
                    .password(password)
                    .host(ip)
                    .port(port)
                    .maxSize(maxSize)
                    .build();
        }


        return pool;

    }
}

四、创建service和实现类

@Service
@RequiredArgsConstructor
public class IoTDBServiceImpl implements IoTDBService {

    private final IotDBSessionConf conf;

    @Override
    public SessionDataSetWrapper executeQueryStatement(String sql) {
        SessionPool sessionPool = conf.initSessionPool();
        SessionDataSetWrapper wrapper = null;
        try {
            wrapper = sessionPool.executeQueryStatement(sql);
        } catch (IoTDBConnectionException e) {
            throw new RuntimeException(e);
        } catch (StatementExecutionException e) {
            throw new RuntimeException(e);
        }
        return wrapper;
    }

    @Override
    public SessionDataSetWrapper executeRawDataQuery(List<String> path, long startTime, long endTime, long timeOut) {
        SessionPool sessionPool = conf.initSessionPool();
        SessionDataSetWrapper wrapper = null;
        try {
            wrapper = sessionPool.executeRawDataQuery(path, startTime, endTime, timeOut);
        } catch (IoTDBConnectionException e) {
            throw new RuntimeException(e);
        } catch (StatementExecutionException e) {
            throw new RuntimeException(e);
        }
        return wrapper;
    }
}

五、创建工具类

@RequiredArgsConstructor
public class IoTDBUtils {

    private final IoTDBService iotDBService;

    /**
     * 根据自定义SQL语句执行查询
     * @param sql
     * @return
     */
    SessionDataSetWrapper executeQueryStatement(String sql) {
        return iotDBService.executeQueryStatement(sql);
    }

    /**
     * 根据时间区间执行查询数据
     * @param paths 时间序列
     * @param startTime 开始时间戳(包含)
     * @param endTime 结束时间戳(不包含)
     * @param timeOut 超时时间
     * @return
     */
    SessionDataSetWrapper executeRawDataQuery(List<String> paths, long startTime, long endTime, long timeOut){
        return iotDBService.executeRawDataQuery(paths, startTime, endTime, timeOut);
    }
}

单元测试

@SpringBootTest(classes = IotDBSessionConfTest.class)
public class IotDBSessionConfTest {

    // 测试连接
    @Test
    public void testInitSessionPool() {
        IotDBSessionConf conf = new IotDBSessionConf();
        SessionPool sessionPool = conf.initSessionPool();
        System.out.println(sessionPool.getVersion());
    }
}

到此这篇关于Springboot整合IoTB的实现示例的文章就介绍到这了,更多相关Springboot整合IoTB内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • SpringBoot与SpringMVC中参数传递的原理解析

    SpringBoot与SpringMVC中参数传递的原理解析

    这篇文章主要介绍了SpringBoot与SpringMVC中参数传递的原理,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-07-07
  • 解决Spring Boot 在localhost域奇怪的404问题(Mac book pro)

    解决Spring Boot 在localhost域奇怪的404问题(Mac book pro)

    这篇文章主要介绍了解决Spring Boot 在localhost域奇怪的404问题(Mac book pro),需要的朋友可以参考下
    2017-09-09
  • Springboot之idea之pom文件图标不对问题

    Springboot之idea之pom文件图标不对问题

    这篇文章主要介绍了Springboot之idea之pom文件图标不对问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-04-04
  • 使用JAVA判断凸多边形的示例代码

    使用JAVA判断凸多边形的示例代码

    本文提供了使用JAVA判断凸多边形的示例代码供大家参考学习,需要的朋友可以看一下
    2013-11-11
  • Spring在多线程下@Resource注入为null的问题

    Spring在多线程下@Resource注入为null的问题

    这篇文章主要介绍了Spring在多线程下@Resource注入为null的问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-02-02
  • Java中@SneakyThrows 注解的应用场景

    Java中@SneakyThrows 注解的应用场景

    本文介绍了Lombok的@SneakyThrows注解在Java异常处理中的使用,该注解允许开发者在不声明throws子句的情况下抛出checked异常,下面就来详细的了解一下,感兴趣的可以了解一下
    2025-10-10
  • java连接Mongodb实现增删改查

    java连接Mongodb实现增删改查

    这篇文章主要为大家详细介绍了java连接Mongodb实现增删改查,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-03-03
  • Java对接钉钉考勤记录的完整步骤

    Java对接钉钉考勤记录的完整步骤

    这篇文章主要介绍了Java对接钉钉考勤记录的相关资料,需要的朋友可以参考下
    2025-10-10
  • Java实现指定目录下的文件查找详解

    Java实现指定目录下的文件查找详解

    这篇文章主要介绍了利用Java实现指定目录下的文件查找的方法,能做到给出文件名,查找目录及其子目录中是否存在或者给出后缀名,查找目录及其子目录中相关的文件,感兴趣的可以学习一下
    2022-03-03
  • springSecurity过滤web请求的项目实践

    springSecurity过滤web请求的项目实践

    SpringSecurity是一个功能强大的安全框架,提供了全面的 Web 安全功能,它的核心之一是过滤器链,用于拦截和处理 Web 请求,本文就来介绍SpringSecurity配置和使用过滤器来管理Web请求的安全性,感兴趣的可以了解一下
    2025-09-09

最新评论