JDBC 連接器延伸功能
ThingWorx JDBC 延伸功能提供了一種簡單快速的解決方案,可讓 ThingWorx 管理員部署支援協力廠商資料庫所需的標準 JDBC 驅動程式,以與 ThingWorx 資料庫物件搭配使用。資料庫物件可讓 ThingWorx 解決方案開發者與設計師合併及利用由在 ThingWorx 上部署之解決方案中的資料庫所提供的功能。
支援原則
欲使用 ThingWorx JDBC 延伸功能,管理員必須為所需資料庫提供適當的 JDBC 驅動程式。雖然 PTC 已採取所有適當的措施來確保 JDBC 連接器延伸功能的一般功能與安全性,但 PTC 無法確定 ThingWorx 與任何特定 JDBC 驅動程式都相容,PTC 也不會處理與此類驅動程式或不支援的資料庫相關的技術支援請求。
此外,PTC 也不提供且無法確認針對不支援的持續性提供者使用延伸功能時所需之協力廠商 JDBC 驅動程式的功能或安全性。PTC 強烈建議在使用具有 JDBC 延伸功能的協力廠商驅動程式之前先檢閱
延伸功能安全性建議。
最後,上述 JDBC 驅動程式僅用於與 ThingWorx 資料庫物件搭配使用。
概觀
如果資料庫的 ThingWorx 中沒有的 JDBC 延伸功能,您可下載驅動程式,並將檔案新增至下列位置,手動新增 JDBC 延伸功能:/Tomcat folder/webapps/Thingworx/WEB- INF/lib
複製驅動程式後,您必須重新啟動 ThingWorx (如果較為簡易的話也可重新啟動 Tomcat)。
如果您不想手動將 JDBC 驅動程式載入 Tomcat,且必須重新啟動 Tomcat,您可以建立包括 JDBC 驅動程式的資料庫延伸功能,然後匯入該延伸功能。此方法的好處在於您不必手動載入驅動程式,類別載入已為您處理妥當,而且適宜升級,所以更新 ThingWorx web 應用程式時,您就不必重新部署驅動程式。如需建立資料庫延伸功能的詳細資訊,請遵循下列步驟。
為 ThingWorx 建立 JDBC 延伸功能
|
ThingWorx 延伸功能支援模型最近已變更。大多數延伸功能都無法再從下載頁取得。如需其他資訊,請參閱 此文章。
|
2. 請參閱範例中繼資料檔案:
<Entities>
<ExtensionPackages>
<!-- The name attribute of the ExtensionPackage element correlates to the name of the zip
archive for the extension -->
<ExtensionPackage name="DatabaseXYZ_ExtensionPackage" description="DatabaseXYZ JDBC Extension" vendor="Acme Corporation" packageVersion="1.0" minimumThingWorxVersion="5.0.0">
<JarResources>
<!-- The JDBC JAR file being used to connect to DatabaseXYZ -->
<FileResource type="JAR" file="databaseXYZ.jdbc.jar" description="DatabaseXYZ JDBC JAR"/>
</JarResources>
</ExtensionPackage>
</ExtensionPackages>
<ThingTemplates>
<!-- A Database ThingTemplate for the DatabaseXYZ extension -->
<ThingTemplate name="DatabaseXYZ" baseThingTemplate="Database" description="DatabaseXYZ ThingTemplate"/>
</ThingTemplates>
</Entities>
3. 下載相應的 JDBC 驅動程式。
4. 透過建立目錄 lib/common 建構延伸功能結構。
5. 在下列目錄位置放置 JAR 檔案:lib/common/<JAR 檔案的 JDBC 驅動程式>
6. 視需要修改 metadata.xml 檔案中 ExtensionPackage 實體的 name 屬性。
7. 將 FileResource 實體的檔案屬性指向 JDBC JAR 檔案名稱。
8. 中繼資料也包含物範本。名稱會設定為 MySqlServer,但可以視需要加以修改。
9. 選取 lib 資料夾與 metadata.xml 檔案,然後傳送至 zip 封存。
|
Zip 封存的名稱應與 metadata.xml 檔案中 ExtensionPackage 實體的名稱屬性相符。
|
10. 匯入新建立的延伸功能。
11. 欲使用 JDBC 延伸功能,請建立新的物件,然後指派已隨 JDBC 延伸功能匯入的新物範本。
欄位名稱
|
描述
|
JDBC 磁碟類別名稱
|
取決於正在使用的驅動程式。
|
JDBC 連線字串
|
|
ConnectionValidationString
|
一種簡單查詢,可驗證來自資料庫的傳回值 (無論待執行的表格名稱是什麼)。
|
依據資料庫的查詢和指令
在服務中設定好組態後,就可建立 SQLQueries 和 SQLCommands,以針對已連線的資料庫執行組態。
傳遞變數
建構查詢時,請針對參數/變數替代使用 [[參數名稱]],並針對字串替代使用 <<字串替換>>。
範例
DELETE FROM <> WHERE (FieldName = '[[MatchName]]');
DELETE FROM << TableName >> WHERE ( FieldName = [[MatchNumber]]);
|
使用 << ... >> 字串替代相當危險,因為它會使您面臨 SQL 插入的風險。考慮使用這種參數傳遞方法時,建議您務必謹慎小心。但是,若要建立非常動態的查詢集,您必須以 << 表格名稱 >> 的格式傳入表格名稱。此外,如果您需要使用 IN 子句,您的集合必須隨 << Item1, Item2, Item3,>> 一起傳入
|