上一章我们处理的基本的构建接入,以及插入的处理,那么接下来我们进行查询的操作处理。
我们继续在IoTDBSessionConfig工具类中加入查询的方法处理
/**
* description: 根据SQL查询最新一条数据
* author:zgy
* @param sql sql查询语句,count查询语句,一般为count(id) as ct 必须加as
* @return
*/
public Map queryMapData(String sql) {
Map rtMap = new HashMap<>();
try {
SessionDataSet sessionDataSetWrapper = session.executeQueryStatement(sql,timeoutInMs);
List columnNames = sessionDataSetWrapper.getColumnNames();
List
1、queryMapData 方法的话就是查询结果为Map集合的处理,比如聚合函数的查询等等。
2、queryLastData 方法为根据SQL查询表中最新的一条记录数,返回实体类。
3、queryLastData 方法为根据sql和表名查询一个Map集合
4、queryListData 根据sql查询一个list实体集合
5、query 根据sql查询一个List集合
下面为测试代码
System.out.println("1、queryMapData查询......");
Map mapOne= iotDBSessionConfig.queryMapData("select count(id) as ct from root.syslog");
System.out.println("结果:"+ArrayUtils.toString(mapOne));
System.out.println("2、queryLastData 根据sql和实体类查询......");
IoTDBSysLog ioTDBSysLog = (IoTDBSysLog) iotDBSessionConfig.queryLastData("select last * from root.syslog",IoTDBSysLog.class);
System.out.println("结果:"+ioTDBSysLog.getLogIp()+"-->"+ioTDBSysLog.getCreateTime());
System.out.println("3、queryLastData 根据sql和表名查询......");
Map mapThree = iotDBSessionConfig.queryLastData("select last * from root.syslog", IoTDBTableParam.SYSLOG_IOT_TABLE);
System.out.println("结果:"+ArrayUtils.toString(mapThree));
System.out.println("4、queryListData 根据sql查询一个list实体集合......");
List list = (List) iotDBSessionConfig.queryListData("select * from root.syslog",IoTDBSysLog.class);
System.out.println("结果条数:"+list.size());
for (IoTDBSysLog sysLog : list){
System.out.println(sysLog.getLogIp()+"-->"+sysLog.getCreateTime());
}
System.out.println("5、query 根据sql查询一个List集合......");
List> listTwo = iotDBSessionConfig.query("select * from root.syslog", IoTDBTableParam.SYSLOG_IOT_TABLE);
System.out.println("结果条数:"+list.size());
for (Map map : listTwo){
System.out.println(map.get("logIp")+"-->"+map.get("createTime"));
}
结果如下
其中3,5两个方法是因为项目中需要进行添加的,是根据动态传递的参数来识别对应的表名,简单进行了包装处理,如果搭建有更好的方法可以留言交流。