目录
前言
上文已经介绍JAVA通过ODBC使用ProcessDB的基本操作,本文将针对实时数据的相关操作进行介绍
一、实时数据字段介绍
字段 | 注释 |
id_f | 数据点id |
db_name_f | 数据库名 |
table_name_f | 数据表名 |
point_name_f | 数据点名 |
parent_name_f | 数据父节点名称(数据库名.数据表名) |
full_name_f | 数据点全名(数据库名.数据表名.数据点名) |
time_f | 数据时间 |
quality_f | 数据质量 |
value_f | 实时数据值 |
message_f | 数据值(特殊特殊类型) |
desc_f | 数据点描述 |
二、查询实时数据
我们以查询public库下sys表下所有数据点的实时数据举例
代码如下:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Timestamp;
import java.text.SimpleDateFormat;
public class Test {
public static void main(String[] args) throws Exception {
Connection conn = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
try {
SimpleDateFormat dateFmt = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
conn = DriverManager.getConnection("jdbc:odbc:ProcessDB V2 Datasource", "root", "root");
pstmt = conn.prepareStatement("select parent_name_f,point_name_f,time_f,quality_f,value_f,desc_f from rt_table where db_name_f = 'public' and table_name_f='SYS'");
rs = pstmt.executeQuery();
while (rs.next()) {
Timestamp timestamp = rs.getTimestamp(3);
System.out.println(rs.getString(1) + "," + rs.getString(2) + "," + dateFmt.format(timestamp) + "," + rs.getInt(4)+ "," + rs.getFloat(5));
}
} catch (Exception e) {
e.printStackTrace();
} finally {
if (rs != null) {
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
rs = null;
}
if (pstmt != null) {
try {
pstmt.close();
} catch (SQLException e) {
e.printStackTrace();
}
pstmt = null;
}
if (conn != null) {
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
conn = null;
}
}
}
}
PUBLIC.SYS,PDB_OS_CPU_USAGE,2022-11-30 15:22:37,0,2.798371
PUBLIC.SYS,PDB_OS_MEM_USAGE,2022-11-30 15:22:37,0,84.0
PUBLIC.SYS,PDB_DISK_READ_SPEED,2022-11-30 15:22:37,0,0.0
PUBLIC.SYS,PDB_DISK_WRITE_SPEED,2022-11-30 15:22:37,0,2161.2073
PUBLIC.SYS,PDB_NET_READ_SPEED,2022-11-30 15:22:37,0,0.0
PUBLIC.SYS,PDB_NET_WRITE_SPEED,2022-11-30 15:22:37,0,0.0
PUBLIC.SYS,PDB_PROC_CPU_USAGE,2022-11-30 15:22:37,0,0.0
PUBLIC.SYS,PDB_PROC_MEM_USED,2022-11-30 15:22:37,0,16.0
PUBLIC.SYS,PDB_FREE_DISK,2022-11-30 15:22:37,0,59572.0
PUBLIC.SYS,PDB_HANDLE_COUNT,2022-11-30 15:22:37,0,637.0
PUBLIC.SYS,PDB_OS_RUNNING_TIME,2022-11-30 15:22:37,0,1.995803
PUBLIC.SYS,PDB_PROC_RUNNING_TIME,2022-11-30 15:22:37,0,90.15
PUBLIC.SYS,PDB_PROC_THREAD_COUNT,2022-11-30 15:22:37,0,124.0
PUBLIC.SYS,PDB_AVAILABLE_DISK,2022-11-30 15:22:37,0,59572.0
PUBLIC.SYS,PDB_OS_TYPE,1970-01-01 08:00:00,0,0.0