使用 IntelliJ 插件进行开发

从 IntelliJ 浏览表并对 Oracle NoSQL Database Cloud Service 实例或 Oracle NoSQL Database Cloud Simulator 执行查询。

Oracle NoSQL Database Cloud Service IntelliJ 插件连接到正在运行的 Oracle NoSQL Database Cloud Service 或 Oracle NoSQL Database Cloud Simulator 实例,并允许您:

本文包含以下主题:

设置 IntelliJ 插件

了解如何为 Oracle NoSQL Database Cloud Service 实例或 Oracle NoSQL Database Cloud Simulator 设置 IntelliJ 插件。

先决条件:

安装 IntelliJ IDEA。您可以从 JetBrains 下载 IntelliJ IDEA。

过程:

可以按如下方式安装该插件:

  1. 打开 Oracle NoSQL DatabaseConnector 页面,即 JetBrains 插件存储库

  2. 选择获取
  3. Versions(版本)菜单中,选择 Download(下载)以了解最新版本的 Oracle NoSQL Database Connector。
  4. 在弹出窗口中,按照 How to Install ‘ Oracle NoSQL Database Connector ’下的屏幕说明进行操作。

重新启动 IDE。您将在右侧面板上看到 Schema Explorer(方案浏览器)图标。

成功设置 IntelliJ 插件后,创建 NoSQL 项目并将其连接到 Oracle NoSQL Database Cloud Service 实例或 Oracle NoSQL Database Cloud Simulator。

在 IntelliJ 中创建 NoSQL 项目

了解如何在 IntelliJ 中创建 NoSQL 项目。

此时,请执行以下步骤:

  1. 打开 IntelliJ IDEA。单击文件 > 新建 > 项目
  2. 项目名称项目地点输入值。选择创建
  3. 选择构建系统和 JDK 路径。
  4. IntelliJ 创建 NoSQL 项目目录,其中包含一个示例 Java 文件。如果已选择 Maven 作为构建系统,则项目目录还包括一个 pom.xml 文件。
  5. 确保为您的 Oracle NoSQL 项目启用了通知。要启用通知,请按 Alt+\ 打开主菜单。单击查看,展开工具窗口 > 通知。右侧工具窗口栏上会显示通知图标 通知铃图标

在 IntelliJ 中成功创建 NoSQL 项目后,可以将项目连接到 Oracle NoSQL Database Cloud Service 或 Oracle NoSQL Database Cloud Simulator。

从 IntelliJ 连接到 Oracle NoSQL Database Cloud Service

了解如何使用 IntelliJ 插件将 NoSQL 项目连接到 Oracle NoSQL Database Cloud Service

此时,请执行以下步骤:

  1. 在 IntelliJ 中打开 NoSQL 项目。

  2. 单击 Schema Explorer(方案浏览器)窗口中的任务图标 任务图标 以打开插件的设置对话框。

  3. 在“设置浏览器”中展开工具 > Oracle NoSQL ,然后单击连接

  4. 从配置文件类型的下拉菜单中选择。您可以在连接下拉列表中查看云概要信息类型的所有现有连接。

  5. 单击 Add Connection 。有两个选项可用于创建连接。

    1. 使用配置文件:指定配置文件路径,该路径指向本地系统上存储的 OCI 配置文件的位置。此文件包含连接到 Oracle NoSQL Database Cloud Service 所需的基本参数,例如区域,租户 ID,用户 ID,指纹,口令短语和私钥路径。

      输入以下连接参数的必需值,然后选择 ADD 。然后选择 OK(确定)

      表 - 连接参数配置文件选项

      Parameter (参数) 说明 示例值
      连接名称 从插件版本 1.5.1 中,为特定连接规范指定的唯一名称是必需的。建议在从版本 1.4.0 或更低版本升级插件后更新“连接名称”字段。

      注:您可以添加多个连接,并且存储的连接规范是持久性的。
      ndcs_con1
      配置文件 在本地系统中存储配置文件的目录的路径。有关配置文件及其内容的更多信息,请参见 Authentication to connect to Oracle NoSQL Database 中的用户主用户方法。 ~/.oci/config
      概要文件 概要文件名。

      注:您可以为这些条目创建具有不同值的多个概要信息,然后可以指定要加载的概要信息。
      DEFAULT
      区间(可选) NoSQL 数据库方案的区间 OCID/区间名称。

      注:指定区间名称时,需要使用冒号指定整个层次结构,并将每个条目分隔开。
      developers:dev1.

      此处 dev1 是区间 developers. 下的一个区间



      注:如果未指定值,则该值默认为根区间。

      该插件连接到配置文件中指定的区域。

      如果使用基于会话令牌的验证,配置文件将包括指定的会话令牌配置文件以及令牌路径。要连接到 Oracle NoSQL Database Cloud Service,必须选择配置文件选项并指定相应的配置文件。

    2. 高级:您可以直接指定连接到 Oracle NoSQL Database Cloud Service 所需的连接参数。输入以下参数的必需值,然后选择 ADD 。然后选择 OK(确定)

    表 - 连接参数高级选项

    Parameter (参数) 说明 示例值
    连接名称 从插件版本 1.5.1 中,为特定连接规范指定的唯一名称是必需的。建议在从版本 1.4.0 或更低版本升级插件后更新“连接名称”字段。

    注:您可以添加多个连接,并且存储的连接规范是持久性的。
    ndcs_con1
    端点 Oracle NoSQL Database Cloud Service 的区域网络访问点。 https://nosql.us-ashburn-1.oci.oraclecloud.com (对于北美地区的阿什本 Oracle NoSQL Database Cloud Service 区域标识符)。有关服务端点的列表,请参见 Data Regions and Associated Service Endpoints
    方案使用方 ID 和用户 ID 租户的 Oracle NoSQL Database Cloud Service OCID 和用户的 OCID。 请参阅 Oracle Cloud Infrastructure 文档中的从何处获取租户的 OCID 和用户的 OCID
    指纹和密码短语(可选) 生成和上载 API 签名密钥时创建的签名密钥的指纹和口令短语。 请参阅 Oracle Cloud Infrastructure 文档中的以下资源:

    - 要使用可选口令短语生成签名密钥,请参见 How to Generate an API Signing Key
    - 要获取密钥的指纹,请参见 How to Get the Key’s Fingerprint
    私有密钥 为用户生成的私钥。 对于应用程序用户,必须生成并上载 API 签名密钥。请参见 How to Generate an API Signing Key 以使用可选口令短语生成签名密钥。
    区间(可选) NoSQL 数据库方案的区间 OCID/区间名称。

    注:指定区间名称时,需要指定整个层次,并在每个条目之间使用冒号分隔。
    developers:dev1.

    此处 dev1 是区间 developers. 下的一个区间



    注:如果未指定值,则该值默认为根区间。

    注:

    • 从版本 1.5.4 开始,IntelliJ 插件会自动下载最新的 Oracle NoSQL Java SDK,并在创建连接时设置 SDK 路径。

    • 如果您要从版本 1.4.0 或更低版本更新插件,则所有存储的连接都将迁移到新版本。在这种情况下,连接名称将与端点相同。按照以下步骤更改连接名称。

  6. IntelliJ 插件将连接详细信息保存在指定的连接名称中。要修改连接详细信息,请在连接的下拉列表中选择连接名称。单击修改连接。您可以更改任何连接参数(如上所述),然后单击确定以保存设置。要从插件中删除连接名称,请选择连接名称,然后单击删除连接。确认要删除的操作后,将从插件中删除连接名称。

  7. 单击方案浏览器中的 Web 图标。现有连接的列表将显示在下拉框中。连接名称将按以下格式显示在 NoSQL 工具窗口中:

    表 - 连接显示

    用于创建连接的选项 在 NoSQL 工具窗口中显示
    Advanced Connection Name:Endpoint:Compartment Name/OCID(如果不是 root 用户)
    Use Configuration File Connection Name:Configuration file path:Profile:Compartment Name/OCID(如果不是 root 用户)

    选择连接,然后单击确定。IntelliJ 插件将项目连接到 Oracle NoSQL Database Cloud Service,并在 Schema Explorer 窗口中显示其方案。

成功将项目连接到 Oracle NoSQL Database Cloud Service 后,可以管理方案中的表和数据。

从 IntelliJ 连接到 Oracle NoSQL Database Cloud Simulator

了解如何使用 IntelliJ 插件将 NoSQL 项目连接到 Oracle NoSQL Database Cloud Simulator。

此时,请执行以下步骤:

  1. 下载并启动 Oracle NoSQL Database Cloud Simulator。请参阅下载 Oracle NoSQL Database Cloud Simulator

  2. 在 IntelliJ 中打开 NoSQL 项目。

  3. 单击 Schema Explorer(方案浏览器)窗口中的任务图标 任务图标 以打开插件的设置对话框。

  4. 在“设置浏览器”中展开工具 > Oracle NoSQL ,然后单击连接。您可以在 Connections(连接)下拉列表中查看 Cloudsim 概要文件类型的所有现有连接。

  5. 从 "Profile"(分析)类型的下拉菜单中选择 Cloudsim

  6. 单击 Add Connection 。输入以下连接参数的值,然后单击确定

    表 - 连接参数

    Parameter (参数) 说明 示例值
    连接名称 从插件版本 1.5.1 中,为特定连接规范指定的唯一名称是必需的。建议在从版本 1.4.0 或更低版本升级插件后更新“连接名称”字段。

    注:您可以添加多个连接,并且存储的连接规范是持久性的。
    nosql_sim1
    服务 URL 运行 Oracle NoSQL Database Cloud Simulator 的 IP 地址和端口。 默认值为 http://localhost:8080
    租户标识符 用于标识承租人的唯一标识符。 默认值为 exampleId。如果要测试示例,请保留此值。

    注:

    • 从版本 1.5.4 开始,IntelliJ 插件会自动下载最新的 NoSQL Java SDK,并在创建连接时设置 SDK 路径。

    • 如果您要从版本 1.4.0 或更低版本更新插件,则所有存储的连接都将迁移到新版本。在这种情况下,连接名称将与端点相同。按照以下步骤更改连接名称。

  7. IntelliJ 插件将连接详细信息保存在指定的连接名称中。要修改连接详细信息,请在连接的下拉列表中选择连接名称。单击修改连接。您可以更改任何连接参数(如上所述),然后单击确定以保存设置。要从插件中删除连接名称,请选择连接名称,然后单击删除连接。确认要删除的操作后,将从插件中删除连接名称。

  8. 单击方案浏览器中的 Web 图标。现有连接的列表将显示在下拉框中。连接名称将按以下格式显示在 NoSQL 工具窗口中:

    Connection Name:service Url : Tenant Identifier

    选择连接,然后单击确定。IntelliJ 插件将项目连接到 Oracle NoSQL Database Cloud Simulator,并在 Schema Explorer 窗口中显示其方案。

注:将项目连接到 Oracle NoSQL Database Cloud Simulator 之前,必须先启动并运行该项目。否则,您的连接请求将在 IntelliJ 中失败。

成功将项目连接到 Oracle NoSQL Database Cloud Simulator 后,可以管理方案中的表和数据。

使用 IntelliJ 中的 Oracle NoSQL Java SDK 创建应用

了解如何使用 Oracle NoSQL Java SDK 程序包从 IntelliJ 插件创建应用程序。

连接到 Oracle NoSQL Database Cloud Simulator 或 Oracle NoSQL Database Cloud Service 后,您可以使用 Oracle NoSQL Java SDK 创建应用。

在本主题中,您将运行 Oracle NoSQL Java SDK 程序包中提供的示例应用程序,以便在 Oracle NoSQL Database Cloud Simulator 或 Oracle NoSQL Database Cloud Service 中创建表。

此时,请执行以下步骤:

  1. GitHub 下载最新的 Oracle NoSQL Database Java SDK。

  2. 提取(解压缩)本地系统信息库中下载的文件。

  3. 启动 IntelliJ IDEA 并打开 NoSQL 项目。

  4. 如果使用的是 Maven 构建系统,请确保已在 pom.xml 中添加了所需的依赖项。有关详细信息,请参阅 Oracle NoSQL Java SDK GitHub

  5. 从提取的 Oracle NoSQL Database Cloud Service Java SDK 目录中,导航到 oracle-nosql-java-sdk > examples 文件夹。将 BasicTableExampleCommon java 文件复制到 NoSQL 项目目录。

    BasicExampleTable 程序创建一个名为 audienceData 的表,向此表中添加两行,查询插入的行,删除插入的行,最后删除 audienceData 表。

  6. 在运行应用程序之前,必须提供必要的参数以连接:

    a. 从菜单中选择运行 > 编辑配置

    b. 选择添加新配置,然后选择应用程序

    c. 在右侧显示的窗口中,在名称字段中输入主类。

    d. 在构建并运行下,指定 Java JDK 路径并输入主类。

    e. 输入所需的程序参数。选择应用,然后选择确定

    表 - 程序参数

    连接类型 程序参数 更多信息
    Cloudsim http://localhost:8080 如果在其他端口上启动了 Oracle NoSQL Database Cloud Simulator,则必须将 8080 替换为该端口号。
    Region [-configFile <path-to-config-file>]

    例如:

    us-ashburn-1 -configFile D:\OCI_PROP\config
    第一个参数指示 Oracle NoSQL Database Cloud Service 的数据区域。第二个参数传递一个配置文件,其中包含用于连接到 Oracle NoSQL Database Cloud Service 的身份证明。有关配置文件内容的信息,请参阅连接到 Oracle NoSQL Database 的验证

    如果未指定 config 文件,则脚本使用 SignatureProvider 类的默认构造器,该类在以下位置查找 config 文件:

    $HOME/.oci
  7. 要运行此程序,请选择“Run(运行)”或按 Shift + 10。

    注:如果要从终端运行程序,请使用以下样例命令:

    使用 maven 构建系统编译程序,使用:

    mvn compile

    通过提供程序参数来运行程序:

    mvn exec:java -Dexec.mainClass=BasicTableExample -Dexec.args="<region>"

    示例:mvn exec:java -Dexec.mainClass=BasicTableExample -Dexec.args="us-ashburn-1"

  8. 在底部的“Run(运行)”工具窗口中查看输出。验证日志以确认代码执行成功。您可以看到指示表创建、行插入等的显示消息。

输出样例:

  Creating table audienceData
  Created table audienceData
  Put row: {"cookie_id":123,"audience_data":{"audience_segment":{"sports_lover":"2018-11-30","book_reader":"2018-12-01"},"ipaddr":"10.0.00.xxx"}} result=non-null Version
  Got row: {"cookie_id":123,"audience_data":{"audience_segment":{"sports_lover":"2018-11-30","book_reader":"2018-12-01"},"ipaddr":"10.0.00.xxx"}}
  Inserted row via query, result:
  {"NumRowsInserted":1}
  Got row inserted by query: {"cookie_id":106,"audience_data":{"audience_segment":{"foodie":"2020-06-01","sports_lover":"2020-05-10"},"ipaddr":"10.0.00.xxx"}}
  Put row from json: {"cookie_id":456,"audience_data":{"ipaddr":"10.0.00.yyy","audience_segment":{"sports_lover":"2019-01-05","foodie":"2018-12-31"}}}
  Got row inserted as JSON: {"cookie_id":456,"audience_data":{"audience_segment":{"sports_lover":"2019-01-05","foodie":"2018-12-31"},"ipaddr":"10.0.00.yyy"}}
  Query results for SELECT * from audienceData WHERE cookie_id = 456:
  {"cookie_id":456,"audience_data":{"audience_segment":{"foodie":"2018-12-31","sports_lover":"2019-01-05"},"ipaddr":"10.0.00.yyy"}}
  Deleted key {"cookie_id":456} result=true
  Dropping table audienceData

  Process finished with exit code 0

注:BasicExampleTable 删除插入的行并删除 audienceData 表时,您无法在方案浏览器中查看此表。如果要查看 Schema Explorer(方案浏览器)中的表,请注释删除插入行并删除表的代码,然后重新运行程序。

使用 IntelliJ 插件管理表

了解如何通过 Schema Explorer 在 Oracle NoSQL Database Cloud Service 或 Oracle NoSQL Database Cloud Simulator 中创建表和查看表数据。

此时,请执行以下步骤:

  1. 找到 Schema Explorer ,然后单击 “刷新”图标 图标以重新加载方案。

  2. 在租户标识符下找到表,然后展开表以查看其列、主键和分片键详细信息。如果按照使用 IntelliJ 中的 Oracle NoSQL Java SDK 创建应用程序主题中所述创建了一个示例应用程序,您将能够看到 audienceData 表。

  3. 双击表名以查看其数据。或者,可以右键单击该表并选择浏览表

  4. 记录查看器窗口将显示在主编辑器中。单击 Execute(执行)以运行查询并显示表数据。

  5. 要单独查看单个单元格数据,请双击该单元格。

使用 IntelliJ 执行 DDL 操作

可以使用 IntelliJ 执行 DDL 操作。

可以从 IntelliJ 插件内部执行的一些 DDL 操作包括

CREATE TABLE

DROP TABLE

CREATE INDEX

删除指数

添加栏位

删除栏位

冻结/取消冻结模式

您需要先冻结单例表的方案,然后再将其设为全局活动表。一旦冻结了表的方案,就无法对该方案进行任何更改。要冻结单例表的方案,它应至少具有一个 JSON 列。右键单击该表,然后选择冻结/解冻。确认后,表的方案将冻结。同样,要解冻表的方案,请右键单击该表,然后选择冻结/解冻。确认后,表的方案将更改回可变模式,这意味着方案可以更改。

注:需要先删除表区域副本(表必须是单例表),然后才能执行解冻操作。

管理副本

请参见 Regional Table Replicas ,了解什么是副本以及如何通过添加区域副本将单例表转换为全局活动表。

添加副本

可以将区域副本添加到单例表,使其成为全局活动表或将副本添加到现有的全局活动表。在向表添加副本之前,应先冻结表。右键单击表,然后从区域副本中选择添加副本。您可以从复制区域的下拉列表中选择副本。您可以决定该复制区域中的表的读取单位和写入单位。无法在副本中更改/编辑表的磁盘存储值。单击添加副本。该表将在该区域中复制。

查看副本

右键单击表,然后从区域副本中选择查看副本。您可以查看表的副本列表。

删除副本

右键单击表,然后从区域副本中选择删除副本。单击添加并选择要删除的副本。您可以选择一次要删除的多个副本。如果要从需要删除的副本列表中删除副本,请单击删除。单击 Drop Replicas 。确认后,表将从所有选定副本中删除。

编辑预留容量

您可以编辑表的保留容量和使用模型。右键单击该表,然后选择编辑保留的容量。您可以选择两种容量模式之一:预配容量或按需容量。编辑值,然后单击应用更改

如果编辑的表是全局活动表:

使用 IntelliJ 执行 DML 操作

您可以使用 IntelliJ 插件添加数据、修改现有数据以及从表中查询数据。

插入信息

修改数据 - 更新行/删除行

查询表格

注:该下拉列表仅显示与您正在处理的表相关的 SQL 语句。

模式浏览器

Schema Explorer(方案浏览器)窗口中,可以验证特定列的完整数据类型。找到特定列,数据类型后跟列名。

IntelliJ 插件的授权要求

了解 Oracle NoSQL Database Cloud Service 中使用 IntelliJ 插件所需的授权要求。

IntelliJ 插件允许您使用 API 密钥验证或会话令牌验证方法访问 Oracle NoSQL Database Cloud Service。通过身份和访问管理 (Identity and Access Management,IAM) 策略来管理对 Oracle NoSQL Database Cloud Service 中资源(例如表、表空间和 API)的访问。这可确保只有经过身份验证的用户(在给定区间中具有适当的检查、读取、使用或管理表权限的组成员)才能与这些资源交互。有关详细信息,请参阅管理对 NDCS 表的访问

使用 IntelliJ 插件管理 Oracle NoSQL Database Cloud Service 表中的表时,您的有效 IAM 权限确定可以从哪些资源读取或写入哪些资源。如果用户尝试的某个操作缺少授权,IntelliJ 插件将返回 OCI IAM 提供的相应授权错误。

例如,如果您的用户组仅对 NoSQL 表具有“读取”权限,则 OCI IAM 拒绝对 Oracle NoSQL Database Cloud Service 表执行任何插入操作。IntelliJ 插件中将显示以下错误消息:

Error executing Insert Row : Authorization failed or requested resource not found (5.4.18)