最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時(shí)間:2025年08月15日 09:16:59   作者:行者張良  
文章介紹在Windows系統(tǒng)下使用JDBC驅(qū)動(dòng)訪問PI數(shù)據(jù)庫的方法,涵蓋環(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)常用的訪問PI數(shù)據(jù)庫的方案有:①使用 JDBC Driver 或 ODBC Driver;②使用 PI Web Api;③使用 sdk
本次,我們選擇使用 JDBC Driver 來實(shí)現(xiàn)java 訪問PI數(shù)據(jù)庫。

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

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

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

三、軟件安裝

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

鏈接: 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填寫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,可以用來查詢SQL。

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

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

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訪問數(shù)據(jù)庫的方式即可查詢PI數(shù)據(jù)庫

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ù)庫的文章就介紹到這了,更多相關(guān)java jdbc操作pi內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • SpringBoot基于數(shù)據(jù)庫實(shí)現(xiàn)定時(shí)任務(wù)過程解析

    SpringBoot基于數(shù)據(jù)庫實(shí)現(xiàn)定時(shí)任務(wù)過程解析

    這篇文章主要介紹了SpringBoot基于數(shù)據(jù)庫實(shí)現(xiàn)定時(shí)任務(wù)過程解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-12-12
  • JAVA設(shè)計(jì)模式之調(diào)停者模式詳解

    JAVA設(shè)計(jì)模式之調(diào)停者模式詳解

    這篇文章主要介紹了JAVA設(shè)計(jì)模式之調(diào)停者模式詳解,調(diào)停者模式是對(duì)象的行為模式,調(diào)停者模式包裝了一系列對(duì)象相互作用的方式,使得這些對(duì)象不必相互明顯引用,從而使它們可以較松散地耦合,需要的朋友可以參考下
    2015-04-04
  • java  StringBuilder類的詳解及簡(jiǎn)單實(shí)例

    java StringBuilder類的詳解及簡(jiǎn)單實(shí)例

    這篇文章主要介紹了java StringBuilder類的詳解及簡(jiǎn)單實(shí)例的相關(guān)資料,實(shí)現(xiàn)了StringBuilder類的追加、插入、替換、刪除等操作,需要的朋友可以參考下
    2017-08-08
  • Java使用Streams時(shí)的7個(gè)常見錯(cuò)誤與解決方案

    Java使用Streams時(shí)的7個(gè)常見錯(cuò)誤與解決方案

    這篇文章主要為大家詳細(xì)介紹了Java使用Streams時(shí)的7個(gè)常見錯(cuò)誤與解決方案,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2025-04-04
  • Java 網(wǎng)絡(luò)編程之 TCP 實(shí)現(xiàn)簡(jiǎn)單的聊天系統(tǒng)

    Java 網(wǎng)絡(luò)編程之 TCP 實(shí)現(xiàn)簡(jiǎn)單的聊天系統(tǒng)

    這篇文章主要介紹了Java 網(wǎng)絡(luò)編程之 TCP 實(shí)現(xiàn)簡(jiǎn)單的聊天系統(tǒng),幫助大家更好的理解和學(xué)習(xí)Java 網(wǎng)絡(luò)編程,感興趣的朋友可以了解下
    2020-11-11
  • Java中Socket用法詳解

    Java中Socket用法詳解

    本文詳細(xì)講解了Java中Socket的用法,文中通過示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-12-12
  • Spring集成MyBatis?及Aop分頁的實(shí)現(xiàn)代碼

    Spring集成MyBatis?及Aop分頁的實(shí)現(xiàn)代碼

    這篇文章主要介紹了Spring集成MyBatis?及Aop分頁的實(shí)現(xiàn),本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-04-04
  • JAVA中阻止類的繼承(官方和非官方)

    JAVA中阻止類的繼承(官方和非官方)

    在面向?qū)ο蟮睦碚撝? 有一些方案要求你用一個(gè)辦法來聲明一個(gè)不可繼承的類。一般而言,如果類提供的功能不應(yīng)該被改變,或者更恰當(dāng)?shù)恼f,是被覆蓋(override)的時(shí)候才會(huì)出現(xiàn)這種情況。在這篇文章里,我討論在JAVA語言中的實(shí)現(xiàn)辦法--官方和非官方的辦法
    2014-01-01
  • Spring?MVC基于注解的使用之JSON數(shù)據(jù)處理的方法

    Spring?MVC基于注解的使用之JSON數(shù)據(jù)處理的方法

    這篇文章主要介紹了Spring?MVC基于注解的使用JSON數(shù)據(jù)處理,json是一種輕量級(jí)的數(shù)據(jù)交換格式,是一種理想的數(shù)據(jù)交互語言,它易于閱讀和編寫,同時(shí)也易于機(jī)器解析和生成,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2022-05-05
  • Java中的引用類型和使用場(chǎng)景詳細(xì)

    Java中的引用類型和使用場(chǎng)景詳細(xì)

    這篇文章介紹的是Java中的引用類型和使用場(chǎng)景,主要內(nèi)容展開Java中的引用類型,有強(qiáng)引用、軟引用 、弱引用、虛引用,需要的朋友可以參考一下
    2021-10-10

最新評(píng)論

隆安县| 龙口市| 公主岭市| 崇礼县| 大余县| 贡嘎县| 梨树县| 桐乡市| 慈溪市| 英德市| 磴口县| 吉安市| 微博| 中宁县| 武乡县| 庆云县| 修文县| 兴义市| 黄浦区| 洞头县| 昆明市| 巴青县| 黄陵县| 乐昌市| 孟津县| 遂昌县| 香格里拉县| 南川市| 乌拉特前旗| 依兰县| 渑池县| 宣威市| 文安县| 安塞县| 大城县| 应城市| 河北区| 霞浦县| 靖远县| 荆门市| 金塔县|