ProcessDB实时/时序数据库——JAVA连接ODBC读写实时数据

目录


前言

上文已经介绍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

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值