一、引入依赖
<!--引入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内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!
发表评论