示例代码:
import java.text.SimpleDateFormat;
import com.processdb.connection.DBConnect;
import com.processdb.connection.DBConnectManager;
import com.processdb.connection.DBRoot;
import com.processdb.driver.common.ConnectInfo;
import com.processdb.driver.common.ConstantValue.FilterType;
import com.processdb.driver.common.ConstantValue.RelationType;
import com.processdb.driver.common.FilterItem;
import com.processdb.driver.common.PointInfo;
import com.processdb.driver.common.PointsResultSet;
import com.processdb.driver.common.QueryPointsParameter;
import com.processdb.exception.DBException;
public class QueryPointUseFilter {
static SimpleDateFormat dateFmt = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
public static void main(String[] args)
{
//设置链接信息
ConnectInfo host = new ConnectInfo();
host.setConnectName("testConn");
host.setHostName("127.0.0.1");
host.setHostPort(8301);
host.setPassword("root");
host.setUserName("root");
host.setCacheable(false);
DBConnect myConn = null;
try {
//获取链接
myConn = DBConnectManager.getInstance().getConnect(host);
} catch (DBException e1) {
e1.printStackTrace();
return;
}
//配置查询参数
QueryPointsParameter queryPointsParameter = new QueryPointsParameter();
queryPointsParameter.pageSize = 0; //分页大小
queryPointsParameter.pageNumber = 0;//页面编号
//创建过滤一个过滤项:根据库名模糊查询
FilterItem filterItem = new FilterItem();
filterItem.setItemID(FilterType.FILTER_DB_NAME);//通过库名称查询点信息
filterItem.setRelation(RelationType.RELATION_LIKE);
filterItem.setValue("public");
//添加过滤项
queryPointsParameter.filterList.add(filterItem);
//创建过滤一个过滤项:根据表名称模糊查询
filterItem = new FilterItem();
filterItem.setItemID(FilterType.FILTER_TABLE_NAME);//通过表名称查询点信息
filterItem.setRelation(RelationType.RELATION_LIKE);
filterItem.setValue("sys");
//添加过滤项
queryPointsParameter.filterList.add(filterItem);
//创建过滤一个过滤项:根据点名称模糊查询
filterItem = new FilterItem();
filterItem.setItemID(FilterType.FILTER_POINT_NAME);//通过点名称查询点信息
filterItem.setRelation(RelationType.RELATION_LIKE);
filterItem.setValue("cpu");
//添加过滤项
queryPointsParameter.filterList.add(filterItem);
//创建过滤一个过滤项:根据点类型查询
filterItem = new FilterItem();
filterItem.setItemID(FilterType.FILTER_POINT_TYPE);//通过点类型查询点信息
filterItem.setRelation(RelationType.RELATION_EQUAL);
filterItem.setValue("0");//数值类型需要转换为字符串
//添加过滤项
queryPointsParameter.filterList.add(filterItem);
//创建一个结果集
PointsResultSet pointResultSet = new PointsResultSet();
//执行查询
int res = DBRoot.getInstance(myConn).queryPointsUseFilter(queryPointsParameter, pointResultSet);
if(res != 0)
{
System.out.println("QueryPointsUseFilter failed, error code: " + res);
return;
}
//打印出结果集中的点信息
for (int k = 0; k < pointResultSet.pointList.size(); k++) {
PointInfo pointInfo = pointResultSet.pointList.get(k);
System.out.println(pointInfo.getFullName() + ", time: " + dateFmt.format(pointInfo.getMemRecord().getTimeStamp()) + ", last value: " + pointInfo.getMemRecord().getFloat32());
}
}
}
运行结果:
PUBLIC.SYS.PDB_OS_CPU_USAGE, time: 2023-02-11 14:20:18, last value: 35.915825
PUBLIC.SYS.PDB_PROC_CPU_USAGE, time: 2023-02-11 14:20:18, last value: 1.0