< 上一個課程 | 下一個課程 >

第 3 課:設定資料庫連線

在本課程中,您將會連接專案至前一課程中匯入的資料庫。
因為這個指導教學的目標不是教導您如何連接至資料庫,所以本課程將不詳細解說該過程。簡而言之,您將設定一個資料庫連線,以容許您的 EGL 應用程式在下列兩個時期連接至資料庫:當您設計該應用程式時進行連線(設計時期連線),以及當您在伺服器上執行該應用程式時進行連線(執行時期連線)。

如前一課程中所述,WebSphere® Application Server 使用 EAR 專案中的資料庫連線資訊。Tomcat 使用 Web 專案中的資料庫連線資訊。因此,對於每一部伺服器,資料庫連線步驟會有所不同。

建立連線

無論您要使用哪部伺服器,都必須建立與資料庫的設計時期連線。如果是使用 WebSphere Application Server,則 EGL 也會自動建立相符的執行時期連線。 如果是使用 Tomcat,則本課程中後面的其他步驟,將指導您完成將此連線與 Tomcat 產生關聯。在下一課程中,您還將使用此設計時期連線來建立啟動器 EGL 程式碼。

  1. 在「企業瀏覽器」視圖中,用滑鼠右鍵按一下 EGLWeb 專案,然後按一下內容
  2. 在「內容」視窗中,按一下 EGL 執行時期資料來源
  3. 在「EGL 執行時期資料來源」頁面上,選取從資料工具連線載入值,然後按一下新建 這時會開啟「新建連線」視窗。
  4. 連線設定檔視窗中的連線設定檔類型下,按一下 Derby
  5. 對於名稱,輸入下列名稱:
    EGLDerbyDB
  6. 您可以讓說明保留為空白。按下一步
  7. 驅動程式清單中,讓 BIRT SampleDb Derby 內嵌式驅動程式保留預設值。
  8. 內容下面的資料庫位置欄位中,按一下瀏覽並導覽至下列資料夾:

    workspace-location/EGLWeb/WebContent/EGLDerbyDB

    workspace-location 是現行工作區的完整路徑。按一下確定

  9. 清除使用者名稱欄位,並讓密碼欄位保留為空白。對於這個資料庫,不需要使用者名稱或密碼。
  10. 接受 URL 的預設值。因為資料庫已存在,所以您可以清除建立資料庫(必要的話)的勾選框。請確保選取當精靈完成時連接
  11. 按一下測試連線 如果所有資訊都是正確的,則「新建連線」視窗應該與下列範例相似,其中資料庫位置欄位中具有您專屬的工作區及位置資訊:
    「指定驅動程式及連線詳細資料」視窗顯示成功的連線
  12. 按一下確定,以關閉測試連線視窗。
  13. 按一下完成 這時會建立新連線,並將連線的必要資訊填入下面的欄位中:
    「內容」頁面上的「新建執行時期資料來源」

    請注意,EGL 已為此連線指定了 JNDI 名稱,該名稱是連線的 ID。依預設,根據資料庫的名稱,JNDI 名稱是 jdbc/EGLDerbyDB。應用程式將在執行時期使用此名稱來存取資料庫連線。

  14. 按一下確定
  15. 您可能會看到一個視窗,詢問您是否要更新這個專案之預設建置選項中的資訊。如果您看到此視窗,請按一下
  16. 在「專案導覽器」視圖中,展開 EGLWeb 專案及 EGLSource 資料夾。開啟專案的建置檔,方法是按兩下「專案瀏覽器」視圖中的 EGLWeb.eglbld 檔。 這時會在建置組件編輯器中開啟建置檔。
  17. 請檢查「EGL 執行時期資料來源」視窗是否已根據連線資訊設定了建置描述子選項。 對於 WebSphere Application Server,建置描述子選項應該與此圖片相似:
    顯示資料庫連線適當設定之建置描述子選項的圖片
    為了使資料庫連線能夠運作,需要設定下列選項:
    dbms
    此建置描述子選項指示資料庫的類型,在此情況下為 DERBY。
    sqlDB
    此建置描述子選項指示連線 URL,或伺服器用來尋找資料庫的字串。連線 URL 的格式針對每種資料庫類型都不同,但針對 Derby,該格式為:通訊協定(在此情況下為 JDBC),冒號分隔字元,資料庫類型 (Derby),另一個冒號分隔字元,資料庫在磁碟上的路徑和連線的任何參數。 在此情況下,連線 URL 與下列範例相似,其中您的資料庫路徑會取代 D:\MyData\workspace_jsf_tutorial
    jdbc:derby:D:\MyData\workspace_jsf_tutorial\EGLWeb\WebContent\EGLDerbyDB
    sqlValidationConnectionURL
    此建置描述子選項會設定連線 URL,來驗證與資料庫的連線。在此情況下(與大多數情況相同),此選項與 sqlDB 相同。
    sqlJDBCDriverClass
    此建置描述子選項會設定資料庫驅動程式的名稱,程式會使用它來存取資料庫。「新建連線」視窗會從 derby.jar 檔擷取此名稱:org.apache.derby.jdbc.EmbeddedDriver
    sqlJNDIName
    這是代表執行時期連線的 JNDI 名稱。
  18. 如果已根據您填入「新建連線」視窗的資訊設定了建置描述子選項,請關閉建置描述子,而不進行任何變更。如果尚未設定建置描述子選項,請遵循下列步驟來設定它們:
    1. 使用連線載入 DB 選項清單中,選取您的 EGLDerbyDB 連線。 這時已設定數個選項,不含 sqlJNDIName 選項。
    2. 請完全依照下面所示,將 sqlJNDIName 選項設定為下列 JNDI 名稱:
      jdbc/EGLDerbyDB
      註: 若要開啟 sqlJNDIName 選項以進行編輯,請在該選項旁邊的直欄中緩慢按兩下。也可以在直欄中快速按三下。
      現在,建置描述子選項的值會與上面所述內容相符。
    3. 儲存並關閉建置描述子。
    4. 可以選擇性地設定「EGL 執行時期資料庫連線」視窗,以在將來透過啟用相關聯的喜好設定來進行這些變更。按一下視窗 > 喜好設定,然後按一下 EGL > 預設建置描述子。在修改執行時期資料來源時更新專案的預設建置描述子選項下面,選取一律以自動更新建置描述子選項,或選取提示以讓您進行選擇。 此喜好設定會在您下次使用「EGL 執行時期資料庫連線」視窗時生效。

課程檢查點

在本課程中,您會設定專案的資料庫連線。
使用專案「內容」視窗的「EGL 執行時期資料來源」頁面時,您會先使用工作台的資料工具建立與資料庫的設計時期連線。然後,如果是使用 WebSphere Application Server,則 EGL 會使用此設計時期連線中的資訊,來建立要在執行時期使用的相符連線。在此情況下,EGL 對您的專案所作的變更包括:
  • EGL 設定某些與資料庫相關之建置描述子選項的值,如課程中先前所述。
  • EGL 建立 JNDI 名稱,以用作連線的名稱。依預設,根據資料庫的名稱,為您專案建立的 JNDI 名稱是 jdbc/EGLDerbyDB
  • 針對其版本號碼低於第 7 版的 WebSphere Application Server,EGL 新增資料來源至 EAR 專案的部署描述子。此資料來源會使 JNDI 名稱與資料庫本身相關聯。使用第 7 版,就不再需要在 EAR 中定義資料來源。
  • EGL 會將資源參照新增至 EGLWeb 專案之 Web 部署描述子 (WebContent\WEB-INF\web.xml) 中的 JNDI 名稱。 現在,EGLWeb 專案可以透過使用 JNDI 名稱,來使用定義於 EAR 專案中的資料來源。編輯器的外觀會有很大差異,視您使用的應用程式伺服器版本而定。下列範例顯示了 WebSphere Application Server 第 7 版的編輯器。
    顯示資源參照的 Web 部署描述子

如果是使用 Tomcat,則專案不具有 EAR 專案,因此 EGL 已新增至 Web 專案的環境定義檔案,會提供連線資訊。環境定義檔案所執行的作業與部署描述子中的資訊在本質上是相同的:它會使 JNDI 名稱與資料庫的位置以及伺服器連接該資料庫所需的其他資訊相關聯。連線僅針對此專案才有效。

註: 從此點開始,無論您使用哪部伺服器,大部分步驟都相同。
< 上一個課程 | 下一個課程 >

意見