欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java?使用JDBC操作PI數(shù)據(jù)庫(kù)的方法

 更新時(shí)間:2025年08月15日 09:16:59   作者:行者張良  
文章介紹在Windows系統(tǒng)下使用JDBC驅(qū)動(dòng)訪問(wèn)PI數(shù)據(jù)庫(kù)的方法,涵蓋環(huán)境要求(JRE8+)、安裝步驟(OLEDB、SQLDAS、JDBC驅(qū)動(dòng))、連接原理及SpringBoot集成方式,感興趣的朋友跟隨小編一起看看吧

一、概述

(1)環(huán)境:windows 系列、jre 8 及以上
(2)資料:PI 官網(wǎng) https://techsupport.osisoft.com/
(3)常用的訪問(wèn)PI數(shù)據(jù)庫(kù)的方案有:①使用 JDBC Driver 或 ODBC Driver;②使用 PI Web Api;③使用 sdk
本次,我們選擇使用 JDBC Driver 來(lái)實(shí)現(xiàn)java 訪問(wèn)PI數(shù)據(jù)庫(kù)。

二、JDBC訪問(wèn)PI數(shù)據(jù)庫(kù)原理

PI的JDBC驅(qū)動(dòng)程序是一個(gè)java數(shù)據(jù)庫(kù)連接驅(qū)動(dòng),通過(guò)SQL查詢提供了強(qiáng)大的數(shù)據(jù)訪問(wèn)PI系統(tǒng) 。PI JDBC Driver 提供了一個(gè)類似于java 訪問(wèn)Mysql或者Oracle 同樣的方式。

但是,JDBC Driver 是 通過(guò)中間層 PI SQL DATA Access Server 來(lái)實(shí)現(xiàn) PI JDBC driver 和 PI OLEDB Enterprise/PI OLEDB providers 之間的交互的。
PI SQL DAS(OLE DB)在客戶端 通過(guò) Net.TCP 或者 HTTPS 來(lái)提供安全的網(wǎng)絡(luò)連接

三、軟件安裝

(1)百度網(wǎng)盤(pán)下載地址:

鏈接: https://pan.baidu.com/s/1SPLpKrfHBPGPzDgb9S_MOQ?pwd=hx7p

提取碼: hx7p 

(2)安裝順序應(yīng)該是:

  • OLE DB
  • PI SQL Data Access Server
  • PI JDBC Driver 2016

1.安裝 PI OLEDB

進(jìn)入PI OLEDB目錄,運(yùn)行:PI OLEDB_2016_.exe

在Default Server填寫(xiě)PI服務(wù)器的ip地址:

2.安裝PI SQL Data Access Server (OLE DB)

進(jìn)入目錄,運(yùn)行:PISQLDAS_2016 (1.5.16090.1)_.exe

3.安裝PI JDBC Driver

進(jìn)入PI JDBC (Windows)目錄,運(yùn)行:PI JDBC_2016_.exe

5.安裝PI的SQL查詢工具

為了方便使用還可以一個(gè)PI ODBC程序,該程序包含一個(gè)工具SQL Commander Lite,可以用來(lái)查詢SQL。

通過(guò)上述的安裝步驟之后,從開(kāi)始菜單打開(kāi)SQL Commander Lite,可以連接上 PI 服務(wù),并且使用 類似 sql 語(yǔ)句去查詢PI 中的數(shù)據(jù)。具體 sql語(yǔ)句 查看 幫助文檔如PI-OLEDB-Enterprise-2016-R2-User-Guide.pdf

四、使用JDBC操作PI數(shù)據(jù)庫(kù)

1.SpringBoot集成PIJDBC驅(qū)動(dòng)

從 PI JDBC Driver 安裝后的目錄下取出 PIHOME\JDBC\PIJDBCDriver.jar。將其放在項(xiàng)目的lib 下,引入項(xiàng)目中。

<!-- 引入本地jar包 -->
        <dependency>
            <groupId>com.osisoft</groupId>
            <artifactId>PIJDBCDriver</artifactId>
            <version>1.5.16096</version>
            <scope>system</scope>
           <systemPath>${project.basedir}/lib/PIJDBCDriver.jar</systemPath>
        </dependency>

2.常用JDBC訪問(wèn)數(shù)據(jù)庫(kù)的方式即可查詢PI數(shù)據(jù)庫(kù)

package com.bkc.test;
import java.sql.Connection;
import java.sql.DatabaseMetaData;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Properties;
public class GetBAMetaData
{
    public static void main(String[] args)
    {
        // arguments: java GetBAMetaData dasName [trustedConnection protocolOrder logLevel]
        // example: java GetBAMetaData myDas yes nettcp:5462 2
        String dasName = "localhost";
        String dataSourceName = "192.168.1.32";
        String isTrustedConnection = "Yes";
        String protocolOrder = "Https/Soap:5461,NetTcp:5462";
        String logLevel = "0";
        System.out.println("\nArguments:");
        System.out.println("\tData Access Server Name: " + dasName);
        System.out.println("\tUse trusted connection?: " + isTrustedConnection);
        System.out.println("\tProtocol order: " + protocolOrder);
        System.out.println("\tLog level: " + logLevel);
        Connection connection = null;
        String url = "";
        String driverClassName = "com.osisoft.jdbc.Driver";
        ResultSet resultSet = null;
        Properties properties = new Properties();
        //url = "jdbc:piintegrator://" + dasName;
        //url = "jdbc:pioledb://" + dasName + "/Data Source=" + dataSourceName + "; Integrated Security=SSPI";
        url = "jdbc:pioledb://" + dasName + "/Data Source=" + dataSourceName + "; Integrated Security=SSPI";
        System.out.println(url);
        properties.put("TrustedConnection", isTrustedConnection);
        properties.put("ProtocolOrder", protocolOrder);
        properties.put("LogConsole", "True");
        properties.put("LogLevel", logLevel);
        try
        {
            Class.forName(driverClassName).newInstance();
            connection = DriverManager.getConnection(url, properties);  
            DatabaseMetaData metaData = connection.getMetaData();
            System.out.println(metaData.getDriverName() + " " + metaData.getDriverVersion()); 
            System.out.println(metaData.getDatabaseProductName());
            System.out.println(metaData.getDatabaseProductVersion() + "\n");
            // get all tables and views
            String tTypes[] = new String[] {"TABLE", "VIEW"};
            resultSet = metaData.getTables(null, null, "%", tTypes);
            if(!resultSet.first())
                throw new Exception ("No rows in the result set.");
            // we are just interested in those 4 columns
            System.out.print("Catalog || ");
            System.out.print("Schema || ");
            System.out.print("Table || ");
            System.out.println("Table Type\n");
            // read the data
            while (!resultSet.isAfterLast()) {
                System.out.print(resultSet.getString("TABLE_CAT") + " || ");
                System.out.print(resultSet.getString("TABLE_SCHEM") + " || ");
                System.out.print(resultSet.getString("TABLE_NAME") + " || ");
                System.out.println(resultSet.getString("TABLE_TYPE"));
                resultSet.next();
            }
        }
        catch (Exception ex)
        {
            System.err.println(ex);
        }
        finally
        {
            try {
                if(resultSet != null) resultSet.close();
                if(connection != null) connection.close();
            } catch (SQLException ex) {
                System.err.println(ex);
            }
        }   
    }
}

到此這篇關(guān)于Java 使用JDBC操作PI數(shù)據(jù)庫(kù)的文章就介紹到這了,更多相關(guān)java jdbc操作pi內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java對(duì)象的內(nèi)存布局詳細(xì)介紹

    Java對(duì)象的內(nèi)存布局詳細(xì)介紹

    這篇文章主要介紹了Java對(duì)象的內(nèi)存布局,我們知道在Java中基本數(shù)據(jù)類型的大小,例如int類型占4個(gè)字節(jié)、long類型占8個(gè)字節(jié),那么Integer對(duì)象和Long對(duì)象會(huì)占用多少內(nèi)存呢?本文介紹一下Java對(duì)象在堆中的內(nèi)存結(jié)構(gòu)以及對(duì)象大小的計(jì)算
    2023-02-02
  • java遞歸法求字符串逆序

    java遞歸法求字符串逆序

    這篇文章主要介紹了java遞歸法求字符串逆序,涉及java遞歸調(diào)用的相關(guān)操作技巧,需要的朋友可以參考下
    2015-05-05
  • Java實(shí)戰(zhàn)之酒店人事管理系統(tǒng)的實(shí)現(xiàn)

    Java實(shí)戰(zhàn)之酒店人事管理系統(tǒng)的實(shí)現(xiàn)

    這篇文章主要介紹了如何用Java實(shí)現(xiàn)酒店人事管理系統(tǒng),文中采用的技術(shù)有:JSP、Spring、SpringMVC、MyBatis等,感興趣的小伙伴可以學(xué)習(xí)一下
    2022-03-03
  • SpringCloud的Hystrix簡(jiǎn)單介紹

    SpringCloud的Hystrix簡(jiǎn)單介紹

    這篇文章主要介紹了SpringCloud的Hystrix簡(jiǎn)單介紹,SpringCloud Hystrix是Netflix開(kāi)源的一款容錯(cuò)框架,具備服務(wù)降級(jí),服務(wù)熔斷,依賴隔離,監(jiān)控(Hystrix Dashboard)等功能,同樣具有自我保護(hù)能力,需要的朋友可以參考下
    2023-07-07
  • 一文梳理Java?8后的新功能

    一文梳理Java?8后的新功能

    Java 8是Java自Java 5(發(fā)布于2004年)之后的最重要的版本,下面這篇文章主要給大家介紹了關(guān)于Java8后新功能的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-02-02
  • 淺析Java線程的中斷機(jī)制

    淺析Java線程的中斷機(jī)制

    本篇文章通過(guò)代碼實(shí)例給大家分享了學(xué)習(xí)Java線程的中斷機(jī)制的一些心得內(nèi)容,有興趣的朋友學(xué)習(xí)下吧。
    2017-12-12
  • Java中指定時(shí)區(qū)的3種方法

    Java中指定時(shí)區(qū)的3種方法

    這篇文章主要介紹了Java中指定時(shí)區(qū)的3種方法,本文是一個(gè)JAVA項(xiàng)目和.NET項(xiàng)目通訊時(shí)遇到的問(wèn)題,本文給出JAVA中的3種解決方法,需要的朋友可以參考下
    2015-02-02
  • java枚舉類型-Enum

    java枚舉類型-Enum

    本文詳細(xì)介紹了 Java1.5 引入的新特性枚舉中的關(guān)鍵字enum,運(yùn)用大量的代碼加以解釋,相信可以幫助到正在學(xué)習(xí)該知識(shí)的小伙伴,大家可以參考一下
    2021-08-08
  • java實(shí)現(xiàn)獲取安卓設(shè)備里已安裝的軟件包

    java實(shí)現(xiàn)獲取安卓設(shè)備里已安裝的軟件包

    本文給大家介紹的是如何獲取設(shè)備中已經(jīng)安裝的應(yīng)用軟件包的代碼,其核心方法原理很簡(jiǎn)單,我們通過(guò)Android中提供的PackageManager類,來(lái)獲取手機(jī)中安裝的應(yīng)用程序信息
    2015-10-10
  • Java并發(fā)編程之重入鎖與讀寫(xiě)鎖

    Java并發(fā)編程之重入鎖與讀寫(xiě)鎖

    這篇文章主要介紹了Java并發(fā)編程之重入鎖與讀寫(xiě)鎖,文中相關(guān)實(shí)例代碼詳細(xì),測(cè)試可用,具有一定參考價(jià)值,需要的朋友可以了解下。
    2017-09-09

最新評(píng)論