備註:

TASK 3:在 VS 代碼中建立 Micronaut 應用程式

在此實驗室中,您將建立 Micronaut 應用程式,並設定您的應用程式以與 Oracle Autonomous Database 通訊。

GraalVM Tools for Micronaut Extension 會預先安裝在 VS Code,作為佈建程序節省時間的一部分。Micronaut 支援也包含 Micronaut Launch 應用程式,可讓您透過 VS Code 內的介面建立 Micronaut 專案。與 GraalVM Tools for Java Extension 結合,預先安裝為相依性,您可以在 GraalVM Enterprise 上執行 Micronaut 專案,然後直接從 VS Code 進行除錯。

預估時間:15 分鐘

任務內容

在此工作中,您將:

步驟 1:建立新的 Micronaut 應用程式

  1. 在連線到遠端主機的 VS Code 視窗中,移至檢視,然後移至命令選盤 (命令選盤也可以按 F1 或 Linux 的 Ctrl+Shift+P 熱鍵組合來開啟),然後搜尋 "Micronaut"。

  2. 選取Micronaut:建立 Micronaut 專案以建立 Micronaut 專案。

  3. 請遵循精靈提示來設定專案:

    • 選擇最新的 Micronaut 版本,不使用 SNAPSHOT 選擇選項

    • 選取應用程式類型:Micronaut 應用程式

    • 選取最新的可用 Java 版本。在建立此實驗室時,該實驗室為 GraalVM EE 22.0.0、Java 17

    • 提供專案名稱:ocidemo

    • 提供基本套裝程式名稱:com.example

    • 選擇專案的語言:Java

    • 新增專案的功能:資料庫:M Micronaut Data JDBC資料庫:Oracle Database Server。按確定

    • 選擇 MavenGradle 作為組建工具

    • 選擇測試架構:JUnit

    • 選擇遠端主機上的目的地資料夾以儲存專案檔案:輸入 /home/opc/,然後按確定以確認。

    您新建立的 Micronaut 專案檔案將在 VS Code 的目前工作區中開啟。

步驟 2:設定連線至 Oracle Autonomous Database 執行處理的應用程式

Oracle Cloud Autonomous Database 連線資訊與證明資料儲存在 Oracle Wallet 中。使用 Micronaut,您可以自動產生和下載公事包並設定資料來源。完成後續步驟以使用來自公事包的自動化資料來源組態:

  1. 按一下左側面板中的專案資料夾名稱,然後開啟 src/main/resources/ 下的 application.yml 檔案。

  2. 以下列資料取代預設檔案內容:

    micronaut:
      application:
        name: ocidemo
    datasources:
      default:
        ocid: ocid1.autonomousdatabase.oc1...
        walletPassword: WALLET_PASSWORD
        username: DATABASE_USERNAME 
        password: DATABASE_PASSWORD
    
  3. 修改預設資料來源連線設定值。

    • 傳回瀏覽器視窗,您應該會看到您的 Oracle Autonomous Database 執行處理主控台。在 Autonomous Database Information > 一般資訊下,尋找並複製執行處理的 ocid 值。

    Oracle Autonomous Database 執行處理 ID

    • Return to VS Code and, in application.yml, OCID in the ocid field.
    • walletPassword 是用來加密公事包內的金鑰,而且可以是您選擇的任何項目 (長度至少必須為 8 個字元,且至少必須包含一個字母和一個數字字元或一個特殊字元)。
    • 在先前的實驗室中建立資料庫綱要使用者時,usernamepassword 值應該是您選擇的名稱和密碼。

附註:在 VS 程式碼檔案中不會自動儲存。若要儲存對特定檔案所做的變更,請前往檔案儲存全部儲存,將編輯儲存至大量檔案。或者,輸入 CTLR +S

步驟 3:設定 Oracle Autonomous Database JDBC 驅動程式

您必須指定正確的 Oracle Database 驅動程式版本,以及專案根目錄之 pom.xml 檔案中的必要模組。

  1. 套用 Oracle Database BOM 21.1.0.0 或更新版本。

    如果您使用 Maven,請在專案的根目錄開啟 pom.xml,並在 repositoriesdependencies 區段之間插入下列內容:

    <dependencyManagement>
      <dependencies>
        <dependency>
          <groupId>com.oracle.database.jdbc</groupId>
          <artifactId>ojdbc-bom</artifactId>
          <version>21.1.0.0</version>
          <type>pom</type>
          <scope>import</scope>
        </dependency>
      </dependencies>
    </dependencyManagement>
    

    如果您使用 Gradle,請在專案的根目錄中開啟 build.gradle,然後在 dependencies 區塊的結尾插入下列項目:

    implementation platform("com.oracle.database.jdbc:ojdbc-bom:21.1.0.0")
    
  2. micronaut-oraclecloud-atp 模組上新增相依性。

    如果您使用 Maven,請開啟 pom.xml,並在 dependencies 區塊中插入下列內容:

    <dependency>
        <groupId>io.micronaut.oraclecloud</groupId>
        <artifactId>micronaut-oraclecloud-atp</artifactId>
        <version>1.2.1</version>
        <scope>runtime</scope>
    </dependency>
    

    如果您使用 Gradle,請開啟 build.gradle,然後在 dependencies 區塊的結尾新增下列項目:

    runtimeOnly("io.micronaut.oraclecloud:micronaut-oraclecloud-atp")
    
  3. 啟用 OCI SDK 記錄日誌。

    如果您使用 Maven,請開啟 pom.xml,並在 dependencies 區塊內新增下列相依性:

    <dependency>
      <groupId>org.apache.httpcomponents</groupId>
      <artifactId>httpclient</artifactId>
      <version>4.5.13</version>
      <scope>runtime</scope>
      <exclusions>
        <exclusion>
          <groupId>commons-logging</groupId>
          <artifactId>commons-logging</artifactId>
        </exclusion>
      </exclusions> 
    </dependency>    
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>jcl-over-slf4j</artifactId>
        <version>1.7.36</version>
        <scope>runtime</scope>
    </dependency>
    

    如果您使用 Gradle,請在 dependencies 區塊上方插入下列組態:

    configurations.all {
        resolutionStrategy.dependencySubstitution {
            substitute(module('commons-logging:commons-logging'))
                    .using(module('org.slf4j:jcl-over-slf4j:1.7.36'))
        }
    }
    

步驟 4:設定雙向以建立綱要

接下來,您需要啟用「開源」雙向資料庫移轉工具程式的支援,讓您定義可管理及設定資料庫綱要的 SQL 命令檔,以便能夠逐步發展綱要和新版本的應用程式。

  1. micronaut-flyway 上新增相依性。

    如果您使用 Maven,請開啟 pom.xml,並在 dependencies 區塊中插入下列內容:

    <dependency>
        <groupId>io.micronaut.flyway</groupId>
        <artifactId>micronaut-flyway</artifactId>
        <scope>runtime</scope>
    </dependency>
    

    如果您使用 Gradle,請開啟 build.gradle,然後在 dependencies 區塊的結尾新增下列項目:

    runtimeOnly("io.micronaut.flyway:micronaut-flyway")
    
  2. 切換至 src/main/resources/application.yml 檔案,然後在第 10 行的 datasources 區段下方新增下列組態,以便讓「雙向」在啟動時執行:

    flyway:
      datasources:
        default:
          enabled: true
    
  3. 開啟 src/test/resources/ 下的 application-test.yml 檔案,並以下列「快速」項目取代檔案預設內容,其中會包含您的測試組態,並將「快速」設為在應用程式啟動時清除綱要,以確保測試以全新資料執行:

    flyway:
      datasources:
        default:
          clean-schema: true
    

附註:在實際情況中,您將設定不同的資料庫來執行測試。

步驟 5:定義 SQL 移轉命令檔

下一步是定義將建立應用程式起始綱要的 SQL 移轉命令檔。

  1. src/main/resources 下建立 db/migration 資料夾。在 src/main/resources 上按一下滑鼠右鍵以展開內容功能表,然後選取新資料夾

    在 VS 代碼中建立新資料夾

  2. 建立 SQL 檔案。在 src/main/resources/db/migration/ 上按一下滑鼠右鍵,以展開內容功能表並選取新檔案。命名為 V1__create-schema.sql

  3. 將下列 SQL 程式碼新增至檔案:

    CREATE TABLE "PET" ("ID" VARCHAR(36),"OWNER_ID" NUMBER(19) NOT NULL,"NAME" VARCHAR(255) NOT NULL,"TYPE" VARCHAR(255) NOT NULL);
    CREATE TABLE "OWNER" ("ID" NUMBER(19) PRIMARY KEY NOT NULL,"AGE" NUMBER(10) NOT NULL,"NAME" VARCHAR(255) NOT NULL);
    CREATE SEQUENCE "OWNER_SEQ" MINVALUE 1 START WITH 1 NOCACHE NOCYCLE;
    

    上面的 SQL 命令檔會建立 ownerpet 表格,以將擁有者及其寵物的資料儲存在 Autonomous Database 中。

您現在可以繼續下一個作業

深入瞭解