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内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • springMvc请求的跳转和传值的方法

    springMvc请求的跳转和传值的方法

    本篇文章主要介绍了springMvc请求的跳转和传值的方法,这里整理了几种跳转方式,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。
    2017-02-02
  • Java实现获取图片和视频文件的Exif信息

    Java实现获取图片和视频文件的Exif信息

    这篇文章将重点为大家介绍一下如何使用Java编程语言结合metadata-extractor去自动获取全景图片的Exif信息,获取照片的拍摄坐标信息,感兴趣的可以了解一下
    2022-11-11
  • 详解Mybatis中javaType和ofType的区别

    详解Mybatis中javaType和ofType的区别

    本文主要介绍了详解Mybatis中javaType和ofType的区别,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-05-05
  • SpringBoot3.X 整合 MinIO 存储原生方案

    SpringBoot3.X 整合 MinIO 存储原生方案

    本文详细介绍了SpringBoot3.X整合MinIO的原生方案,从环境搭建到核心功能实现,涵盖了文件上传、下载、删除等常用操作,并补充了异常处理、参数校验、安全实践等内容,感兴趣的朋友一起看看吧
    2025-07-07
  • 深入解析Java的Spring框架中的混合事务与bean的区分

    深入解析Java的Spring框架中的混合事务与bean的区分

    这篇文章主要介绍了Java的Spring框架中的混合事务与bean的区分,Spring是Java的SSH三大web开发框架之一,需要的朋友可以参考下
    2016-01-01
  • Java Apache POI实现导出Excel的实战指南

    Java Apache POI实现导出Excel的实战指南

    在企业级开发中,Excel 数据导出是高频需求,本文基于 Apache POI 实现灾情速报员数据 Excel 导出功能,文中的示例代码讲解详细,感兴趣的小伙伴可以了解下
    2026-04-04
  • java自动生成接口文档完整代码示例

    java自动生成接口文档完整代码示例

    在软件开发中,编写接口文档是一项必要但繁琐的任务,为了简化这一过程,可以通过使用Swagger2和Swagger-UI来自动生成接口文档,这篇文章主要介绍了java自动生成接口文档的相关资料,需要的朋友可以参考下
    2021-07-07
  • java 如何将图片按照原尺寸比例存入word中

    java 如何将图片按照原尺寸比例存入word中

    这篇文章主要介绍了java 如何将图片按照原尺寸比例存入word中的操作,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-07-07
  • 在SpringBoot中通过jasypt进行加密解密的方法

    在SpringBoot中通过jasypt进行加密解密的方法

    今天小编就为大家分享一篇关于在SpringBoot中通过jasypt进行加密解密的方法,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-01-01
  • Spring Boot最经典的20道面试题你都会了吗

    Spring Boot最经典的20道面试题你都会了吗

    Spring Boot是现代化的Java应用程序开发框架,具有高度的灵活性和可扩展性,下面这篇文章主要给大家介绍了关于Spring Boot最经典的20道面试题,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2024-06-06

最新评论