前言:
本人主要是从事的JAVA开发,如用其它语言的也应该都是流程上大体类似,引入依赖-->编写配置-->创建链接池-->项目调用。但是注意,每次使用完链接请求后,一定要关闭链接,或者说调用close方法,不然可能一直占据链接,致使数据库负载增加和本地无链接可用。下面的篇幅主要是建立在已有项目上进行扩充,不会单独建立项目。(现在有很多开源的好项目,找个单体的容易上手的,还是那句话多看,多练,多上手!)下面是前面的文章的链接:
国产IOTDB(1.3.2):第0集 本地Docker搭建展示和建议-CSDN博客
国产IOTDB(1.3.2):第1集 本地Docker部署之1-CSDN博客
国产IOTDB(1.3.2):第2集 本地Docker部署之2-CSDN博客
国产IOTDB(1.3.2):第3集 参数建议和优化_iotdb修改启动内存-CSDN博客
国产IOTDB(1.3.2):第4集 常用语句-CSDN博客
1、引入依赖
个人建议在项目里面新建一个模块,然后在新模块里面进行引入,这样也能保证一定的规范性和隔离性,尤其是模块多的单体项目。对于微服务,我个人的建议是最好单独一个微服务。(题外话,到底是多大的项目要用到微服务?又有多少是为了微服务而微服务?)
<dependency>
<groupId>org.apache.iotdb</groupId>
<artifactId>iotdb-session</artifactId>
<version>1.3.2</version>
</dependency>
<dependency>
<groupId>org.fusesource.mqtt-client</groupId>
<artifactId>mqtt-client</artifactId>
<version>1.16</version>
</dependency>
上面的是链接IOTDB需要的依赖(目前写此篇的时候最新的就是1.3.2)。下面的是mqtt的依赖,如果你的项目用不到mqtt,可以不用引入。
2、编写配置文件
网上有很多例子怎么在一个类里面写数据库链接,或者每次调用一个方法。我这里还是建议把配置性的内容放入到yml里面,然后通过线程池去管理。当然每个人的情况不一样,每个项目的作用也不尽相同,以你为准。下面贴出来我的配置文件。
dev和prod是咋回事这里就不多说了。
host:就是你那iotdb对外的地址,或者说如果你的项目和你的iotdb都放到了同一个虚拟环境下的话,我更建议是虚拟的那个绑定的ip,这样不至于从外面再绕一圈。
port:端口,这个没啥说的。
username、password:用户名和密码
maxSize:链接池大小
timeOut:链接超时时间
fetchSize:发起一次iotdb请求下,每次最大获得的数据量大小,这个可以用默认的也就是不设定。
3、定义JAVA配置类
@Slf4j
@Component
@Configuration
public class IotDBSessionConfig {
@Value("${iotdb.username:root}")
private String username;
@Value("${iotdb.password:root}")
private String password;
@Value("${iotdb.host:127.0.0.1}")
private String ip;
@Value("${iotdb.port:6667}")
private int port;
@Value("${iotdb.maxSize:10}")
private int maxSize;
@Value("${iotdb.fetchSize:1000}")
private int fetchSize;
@Value("${iotdb.timeOut:60000}")
public static int TIME_OUT;
private static SessionPool sessionIotPool;
@Bean
public SessionPool getSessionIotPool() throws IoTDBConnectionException, StatementExecutionException {
if (sessionIotPool == null) {
sessionIotPool = new SessionPool(ip, port, username, password, maxSize);
sessionIotPool.setTimeZone("Asia/Shanghai");
sessionIotPool.setQueryTimeout(TIME_OUT);
sessionIotPool.setFetchSize(fetchSize);
}
return sessionIotPool;
}
}
上面我还设定了时区,一般服务器时间都没问题的话,应该是不用,这里也是以防万一。
4、编写工具类
我的习惯都是通过工具类来进行操作,你如果想单独一个个的写,以你为准。
目前先贴出来一个通用方法,后面的文章里面,我会介绍更多的方法和编写相关功能。上面是个通用执行sql的方法,只需要在项目里面引入工具类,组织好sql调用即可链接上iotdb进行操作,上面也是个万能的方法,毕竟是执行sql……
结语:
经过上面的配置,就能实现让你的项目链接上iotdb数据库进行你想要的操作,但是我个人建议在编写功能的时候,在操作数据库的时候,先在数据库里面执行一下sql,看看是否是自己想要的效果(这里说的是查询啊!别delete,update就那么执行了),别着急写代码,多想多测试。