IoTDB 入门教程 实战篇③——Java示例(开源)

诗林  金牌会员 | 2024-9-1 20:57:41 | 来自手机 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 698|帖子 698|积分 2094

一、前文

   IoTDB入门教程——导读
    本文详细阐述了怎样通过一个Java项目乐成连接到IoTDB时序数据库,进而展示了怎样向该数据库高效地写入数据以及执行准确的数据查询操纵。
    此示例旨在为读者提供一个清晰、实用的引导,以便他们在自己的项目中实现与IoTDB的交互。
    此示例开源地点:小康师兄/IoTDB示例
  二、新建Java项目



  • 文件—>新建—>项目

  • 选择Maven

  • 项目名称:Java-Example

三、运行Java项目



  • 添加com.weijian.iotdb.Main.java

  • 运行/调试设置,选择应用程序

  • 构建并运行的主类Main

  • 点击运行

四、Maven添加依靠



  • 添加依靠dependencies—>org.apache.iotdb
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <project xmlns="http://maven.apache.org/POM/4.0.0"
  3.          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4.          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  5.     <modelVersion>4.0.0</modelVersion>
  6.     <groupId>com.weijian.iotdb</groupId>
  7.     <artifactId>Java-Example</artifactId>
  8.     <version>1.0-SNAPSHOT</version>
  9.     <properties>
  10.         <maven.compiler.source>8</maven.compiler.source>
  11.         <maven.compiler.target>8</maven.compiler.target>
  12.     </properties>
  13.     <dependencies>
  14.         <dependency>
  15.             <groupId>org.apache.iotdb</groupId>
  16.             <artifactId>iotdb-session</artifactId>
  17.             <version>1.3.2</version>
  18.         </dependency>
  19.         <dependency>
  20.             <groupId>org.apache.iotdb</groupId>
  21.             <artifactId>node-commons</artifactId>
  22.             <version>1.3.2</version>
  23.         </dependency>
  24.     </dependencies>
  25. </project>
复制代码
五、示例源码

   此示例开源地点:小康师兄/IoTDB示例
    https://gitee.com/weijian.kang/IoTDB-Example/tree/master/Java-Example
  示例相对简单,程序流程重要有3步骤


  • 初始化与连接
  • 写入数据
  • 查询数据
  1. package com.weijian.iotdb;
  2. import org.apache.iotdb.isession.SessionDataSet;
  3. import org.apache.iotdb.isession.util.Version;
  4. import org.apache.iotdb.rpc.IoTDBConnectionException;
  5. import org.apache.iotdb.rpc.StatementExecutionException;
  6. import org.apache.iotdb.session.Session;
  7. import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
  8. import java.util.ArrayList;
  9. import java.util.List;
  10. public class Main {
  11.     public static void main(String[] args)
  12.             throws IoTDBConnectionException, StatementExecutionException {
  13.         System.out.println("Hello IoTDB Java Example");
  14.         // 初始化与连接
  15.         Session session = new Session.Builder()
  16.                 .host("xx.xx.xx.xx")
  17.                 .port(6667)
  18.                 .username("root")
  19.                 .password("root")
  20.                 .version(Version.V_1_0)
  21.                 .build();
  22.         // 开启Session RPC不压缩
  23.         session.open(false);
  24.         // 写入数据
  25.         List<Object> values = new ArrayList<>();
  26.         values.add(88);
  27.         insertRecord(session, values);
  28.         // 查询数据
  29.         queryRecord(session);
  30.         
  31.         // 关闭连接
  32.         session.close();
  33.     }
  34.     private static void insertRecord(Session session, List<Object> values) throws IoTDBConnectionException, StatementExecutionException {
  35.         List<String> measurements = new ArrayList<>();
  36.         List<TSDataType> types = new ArrayList<>();
  37.         measurements.add("status");
  38.         types.add(TSDataType.INT32);
  39.         session.insertRecord("root.test.test", System.currentTimeMillis(), measurements, types, values);
  40.         System.out.println("————————————————写入数据成功————————————————");
  41.     }
  42.     private static void queryRecord(Session session) throws IoTDBConnectionException, StatementExecutionException {
  43.         System.out.println("————————————————查询数据开始————————————————");
  44.         try (SessionDataSet dataSet = session.executeQueryStatement("select status from root.test.test")) {
  45.             System.out.println(dataSet.getColumnNames());
  46.             dataSet.setFetchSize(1024); // default is 10000
  47.             while (dataSet.hasNext()) {
  48.                 System.out.println(dataSet.next());
  49.             }
  50.         }
  51.         System.out.println("————————————————查询数据结束————————————————");
  52.     }
  53. }
复制代码


  • 运行截图

七、查询数据



  • 再次查询数据,看看是数据是否存入数据库
  • 查询发现,value(88)的数据已经存入数据库
  1. IoTDB> select status from root.test.test
  2. +-----------------------------+---------------------+
  3. |                         Time|root.test.test.status|
  4. +-----------------------------+---------------------+
  5. |1970-01-21T06:21:09.846+08:00|                 55.0|
  6. |2024-07-21T08:34:04.378+08:00|                  1.0|
  7. |2024-07-21T08:34:21.513+08:00|                  2.0|
  8. |2024-07-21T08:34:23.284+08:00|                  3.0|
  9. |2024-07-21T08:34:25.675+08:00|                 11.0|
  10. |2024-07-21T08:34:28.155+08:00|                 22.0|
  11. |2024-07-21T08:34:30.341+08:00|                 33.0|
  12. |2024-07-27T16:44:06.000+08:00|                 66.0|
  13. |2024-07-28T19:57:38.855+08:00|                 88.0|
  14. |2024-07-28T20:11:41.161+08:00|                 88.0|
  15. |2024-07-28T20:12:49.883+08:00|                 88.0|
  16. +-----------------------------+---------------------+
  17. Total line number = 11
  18. It costs 0.073s
复制代码
八、参考

Java原生接口| IoTDB Website
觉得好,就一键三连呗(点赞+收藏+关注)

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

诗林

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表