Skip to main content
Version: v4

Generic JDBC 連接器

Generic JDBC Connector 是一種通用的 Java 資料庫連接器,可用於在 Java 應用程式中連接和訪問各種類型的關聯式資料庫,例如 MySQL、PostgreSQL、Oracle 等等。它允許應用程式透過 Java Database Connectivity (JDBC) API 連接到資料庫,並執行 SQL 查詢和命令。

使用需求條件

使用 Generic JDBC 連接器前,需要先準備

  • 欲連接資料庫的 JDBC Driver。

此文章以連接 PostgreSQL 為範例,可以至 PostgreSQL 官網下載 所需使用的 Driver 。

Step 1: 建立 JDBC Driver

點擊設定 Icon,並選取 Drives 選項。

進入 Drivers 頁面後,點擊 Create a JDBC Driver 按鈕。

2_generic_jdbc

填入以下配置資訊。

3_generic_jdbc

  • Name: Driver 顯示名稱
  • Class Name: Driver 的 class 名稱。例如 Postgres 是用 org.postgresql.Driver
  • Upload JAR File: 上傳 Driver 的 jar 檔案
  • Limit Pushdown: 設定是否開啟 Limit Pushdown,將處理的查詢推送到資料來源端
  • Limit Pushdown Clause: (若開啟 Limit Pushdown),根據不同資料庫類型,選擇使用的 Limit Pushdown 語法
  • Ignore System Schema Pattern: 為避免系統資料表過多造成連線逾時,可以使用 regular expression 來忽略系統資料表

建立成功後,會看到建立的 Driver 顯示在頁面列表中。

7_generic_jdbc

Step 2: 建立 Generic JDBC 資料來源

您可以透過以下兩種操作來建立資料來源,第一種為點擊側欄 Data Source 的 “+” 按鈕,或是點擊 Overview 頁面中的 Create a Data Source 按鈕來建立。

4_generic_jdbc

Step 3: 設定連線資訊

5_generic_jdbc

Basic

  • Name:資料庫於 Canner Enterprise 之顯示名稱,後續可作修改。
  • Data Source Type : 資料庫類型,請選擇 Generic JDBC

Data Source Properties

  • URI:請填入資料庫 IP 位置,填寫格式為 jdbc:<protocal>://<host>:<port>/databaseName

  • Username:請輸入連接此資料庫的使用者名稱。

  • Password:請輸入連接此資料庫的密碼。

  • Case Sensitive:Canner Enterprise 資料來源中所連結之資料表(Table)名稱皆會統一格式為小寫顯示,不支援以大小寫區分。請在此選擇當連結時偵測到有多個資料表(Table)的名稱字元相同僅有大小寫差異時,該以何種方式處理。

    1. One Only(預設選項):系統不支援多個資料表名稱字元相同但大小寫不同之狀況,因此送出連結資訊後系統會顯示連線錯誤。
    2. First Result:系統會保留第一個掃描到的資料表,其餘相同名稱的資料表不會連至系統中。
    3. Lowercase First:系統會保留第一個掃描到名稱為全小寫之資料表,其餘相同名稱的資料表不會連至系統中 (若沒有名稱為全小寫,則會保留第一個掃描到的資料表)。
    4. Uppercase First:系統會保留第一個掃描到名稱為全大寫之資料表,其餘相同名稱的資料表不會連至系統中 (若沒有名稱為全大寫,則會保留第一個掃描到的資料表)。
    範例:若您連結的資料庫中同時有名稱為 Table, table, TABLE 的三張資料表
    1. 選擇 One Only - 送出連線後,系統顯示連線失敗。
    2. 選擇 First Result - 保留連結 Table 資料表。
    3. 選擇 Lowercase First - 保留連結 table 資料表。
    4. 選擇 Uppercase First - 保留連結 TABLE 資料表。
  • Unsupported Type Handling:選擇如何處理不支援的欄位型態。

    1. Ignore(預設選項):忽略,系統中會顯示此欄位的資料型態不支援。
    2. Convert To Varchar:將不支援的欄位型態轉為字串(Varchar)型態。
  • Table Pattern:可以透過填入 Java 正則表達式 (Java Regular Expression) 來指定僅連結部分符合規則的資料表(Table)。遇以下三種情境時,建議您可以設定此項目:

    1. 希望只連結特定規則的資料表至 Canner Enterprise 中。
    2. 針對同一個原始來源資料庫,您希望在 Canner Enterprise 中分為多個資料來源來連結管理。
    3. 您連結的資料庫中資料表數量超過系統限制,因此需要拆分為多個資料來源來連結管理。
    以下提供三個 Table Pattern 填寫範例:
    範例1:填入 ^p.*\..* ,系統會篩選並只連結以 p 開頭的 schema 底下所有資料表。
    範例2:填入 public\..* ,系統會篩選並只連結以 public 開頭的 schema 底下所有資料表。
    範例3:填入 (public\..*)|(testing\..*) ,系統會篩選並連結以 public 或 testing 開頭的 schema 底下所有資料表。
info

Canner Enterprise 資料來源中所連結之資料表名稱皆會統一格式為小寫顯示,不支援以大小寫區分,因此Table Pattern 亦只支援小寫條件,若您填寫的 Java 正則表達式含有大寫字元,系統會自動轉為小寫條件判斷。

  • Number rounding mode:若您在執行 SQL Query 時使用到此資料來源所連結的資料表,其中有數值欄位資料的小數點位數超過 Default Scale 時,選擇系統該以何種方式處理 (此資料庫Default Scale = 0,因此此設定項為選擇若數值欄位中若出現小數點如何取整)。

    1. Unnecessary(預設選項): 系統會顯示 Query 失敗並提供錯誤訊息。
    2. Up: 「遠離零的四捨五入」,將小數點進位到離零更遠的整數。
    3. Down: 「靠近零的四捨五入」,將小數點捨去到離零更近的整數。
    4. Ceiling: 「四捨五入向正無窮大方向」。
    5. Floor: 「四捨五入向正無窮大方向」。
    6. Half Up: 四捨五入至「最近的鄰近值」,除非兩個鄰近值都等距離,此時則向上進位。
    7. Half Down: 四捨五入至「最近的鄰近值」,除非兩個鄰近值都等距離,此時則向下捨去。
    8. Half Even: 四捨五入至「最近的鄰近值」,除非兩個鄰近值都等距離,此時則向偶數的鄰近值進位。

    以下提供進位處理範例:

Input NumberUPDOWNCEILINGFLOORHALF_UPHALF_DOWNHALF_EVENUNNECESSARY
5.56565656throw ArithmeticException
2.53232322throw ArithmeticException
1.62121222throw ArithmeticException
1.12121111throw ArithmeticException
1.011111111
-1.0-1-1-1-1-1-1-1-1
-1.1-2-1-1-2-1-1-1throw ArithmeticException
-1.6-2-1-1-2-2-2-2throw ArithmeticException
-2.5-3-2-2-3-3-2-2throw ArithmeticException
-5.5-6-5-5-6-6-5-6throw ArithmeticException
  • Default Scale:數值欄位中資料小數點處理到第幾位數,此資料庫預設為 0,即為取至整數。
  • Explore Timeout:系統連結資料來源的逾時限制,若系統執行連結超過此時間,會自動終止並顯示連線錯誤。系統預設逾時限制為 60000 毫秒 ,若您要連結的資料庫中資料表(Table) 數量較多,建議可調高此逾時限制。

Step 4: 完成建立

進行 Submit 後,稍後片刻將會在側欄中顯示 Oracle 的資料來源,點擊後可以進入此資料來源細節頁面。

6_generic_jdbc