
# 下载并安装JDBC驱动包
#### 操作场景
JDBC用于连接DLI服务，您可以在Maven获取JDBC安装包，或在DLI管理控制台下载JDBC驱动文件。
本文介绍通过JDBC连接DLI并提交SQL作业。
#### 获取服务端连接地址
连接DLI服务的地址格式为：jdbc:dli://\<endPoint\>/\<projectId\>。因此您需要获取对应的Endpoint和项目编号。
在[地区和终端节点](https://console.huaweicloud.com/apiexplorer/#/endpoint?DLI)获取DLI对应的Endpoint；在华为云页面上方菜单栏，单击用户名，然后在"我的凭证"页面获取项目编号。
示例：jdbc:dli://dli.cn-north-1.myhuaweicloud.com/96a17d961b84434baec6a58b9e567908。
#### 下载并安装JDBC驱动
![](https://support.huaweicloud.com/usermanual-dli/public_sys-resources/note_3.0-zh-cn.png)
对于2024年5月之前开通并使用DLI服务的用户，使用JDBC 2.X版本时，查询结果最多只能返回1000条。如需查看更多的作业结果，推荐开启队列的"查询结果写入桶"功能，从作业桶中查询超过1000条的数据。
使用"查询结果写入桶"功能需具备以下条件：
- 在DLI管理控制台"全局配置 \> 工程配置"中完成作业桶的配置。
- 配置DLI队列属性中的配置作业结果保存策略，开启"查询结果写入桶"功能。详细操作请参考[队列属性设置](https://support.huaweicloud.com/usermanual-dli/dli_01_0563.html)。
  关于"查询结果写入桶"功能，当前部分用户处于受限使用阶段，如需使用请提交工单申请开通。
  - 其中2024年5月起，新用户可以直接使用DLI服务的"查询结果写入桶"功能，无需申请。
  
  - 对于2024年5月之前开通并使用DLI服务的用户，如需使用"查询结果写入桶"功能，必须提交工单申请开通试用权限。
   
 
- **方式一：使用Maven中央库来添加JDBC驱动**
  [Maven中央库](https://mvnrepository.com/artifact/com.huawei.dli/huaweicloud-dli-jdbc)是Apache Maven项目的一部分，提供了Java库和框架。
  在不指定JDBC获取方式的情况下，默认使用Maven中央库的方式来添加JDBC驱动。
  使用maven构加入huaweicloud-dli-jdbc依赖的maven配置项为（此为默认操作无需单独配置。）
  ```
  <dependency>
      <groupId>com.huawei.dli</groupId>
      <artifactId>huaweicloud-dli-jdbc</artifactId>
      <version>x.x.x</version>
   </dependency>
  ```
  
- **方式二：通过Maven配置华为镜像源来获取JDBC驱动**
  在使用Maven管理项目依赖时，可以通过修改settings.xml文件来配置华为镜像源以获取JDBC驱动。
  ```
  <mirror>
      <id>huaweicloud</id>
      <mirrorOf>*</mirrorOf>
      <url>https://mirrors.huaweicloud.com/repository/maven/</url>
  </mirror>
  ```
  
- **方式三：** **在DLI管理控制台下载JDBC驱动文件**
  1. 登录DLI管理控制台。
  
  2. 单击总览页右侧"常用链接"中的"[SDK下载](https://uquery-sdk.obs-website.cn-north-1.myhuaweicloud.com/)"。
  
  3. 在"DLI SDK DOWNLOAD"页面，选择相应驱动下载。 单击"huaweicloud-dli-jdbc-x.x.x"即可下载对应版本的JDBC驱动包。
     ![](https://support.huaweicloud.com/usermanual-dli/public_sys-resources/note_3.0-zh-cn.png)
     JDBC驱动包命名为"huaweicloud-dli-jdbc-\<version\>.zip"，支持在所有平台（Linux、Windows等）所有版本中使用，且依赖JDK 1.7及以上版本。
     
  
  4. 下载的JDBC驱动包中包含了.bat（Windows）或.sh（Linux/Mac）脚本，这些脚本用于自动化安装JDBC驱动到本地Maven仓库。
     您可以根据操作系统运行相应的脚本安装JDBC驱动
     - Windows：双击.bat文件或在命令行中运行。
     
     - Linux/Mac：运行.sh脚本。
       
   
 
#### 认证鉴权
使用JDBC建立DLI驱动连接时，需要对用户进行认证鉴权。
目前JDBC支持两种认证鉴权方式，Access Key/Secret Key (AK/SK)和Token，其中Token认证仅dli-jdbc-1.x版本支持。推荐使用AK/SK认证方式。
- **（推荐）生成AK/SK**
  1. 登录DLI管理控制台。
  
  2. 在页面右上角的用户名的下拉列表中选择"我的凭证"。
  
  3. 在"我的凭证"页面，默认显示"项目列表"，切换到"管理访问密钥"页面。
  
  4. 单击左侧"新增访问密钥"按钮，输入"登录密码"和"短信验证码"。
  
  5. 单击"确定"，下载证书。
  
  6. 下载成功后，在credentials文件中即可获取AK和SK信息。
  
  
  ![](https://support.huaweicloud.com/usermanual-dli/public_sys-resources/note_3.0-zh-cn.png)
  认证用的AK和SK硬编码到代码中或者明文存储都有很大的安全风险，建议在配置文件或者环境变量中密文存放, 使用时解密, 确保安全。
  
- **获取Token**
  当您使用Token认证方式完成认证鉴权时，需要获取用户Token并在JDBC连接参数中配置Token信息，获取Token的详细步骤如下。
  1. 发送*POST https://<IAM_Endpoint>/v3/auth/tokens* ，请参见[地区和终端节点](https://console.huaweicloud.com/apiexplorer/#/endpoint?IAM)，获取命令中IAM的Endpoint及消息体中的区域名称。
     请求内容示例如下。
     ![](https://support.huaweicloud.com/usermanual-dli/public_sys-resources/note_3.0-zh-cn.png)
     下面示例代码中的斜体字需要替换为实际内容，详情请参考[《统一身份认证服务API参考》](https://support.huaweicloud.com/api-iam/iam_30_0000.html)。
     ```
     {
       "auth": {
         "identity": {
           "methods": [
             "password"
           ],
           "password": {
             "user": {
               "name": "username",
               "password": "password",
               "domain": {
                 "name": "domainname"
               }
             }
           }
         },
         "scope": {
           "project": {
             "id": "0aa253a31a2f4cfda30eaa073fee6477" //假设project_id是“0aa253a31a2f4cfda30eaa073fee6477”
           }
         }
       }
     }
     ```
     
  
  2. 请求响应成功后在响应消息头中包含的"X-Subject-Token"的值即为Token值。
   
 
