更新时间:2025-07-08 GMT+08:00
分享

连接数据库

在创建数据库连接之后,才能使用它来执行SQL语句操作数据。

函数原型

JDBC提供了三个方法,用于创建数据库连接。

  • DriverManager.getConnection(String url);
  • DriverManager.getConnection(String url, Properties info);
  • DriverManager.getConnection(String url, String user, String password);

参数

表1 数据库连接参数

参数

描述

url

数据库连接描述符。格式如下:

  • jdbc:fabricsql://fabric-ep.endpoint/catalog
说明:

  • catalog为lakeformation中对应catalog名称。
  • fabric-ep.endpoint为DataArtsFabric服务终端节点。
  • 使用JDBC连接集群时集群链接地址只支持指定jdbc连接参数,不支持增加变量参数。

info

数据库连接属性。常用的属性如下:

  • AccessKeyID:String类型。表示创建连接的用户访问密钥ID。
  • SecretAccessKey:String类型。表示创建连接的用户访问密钥。
  • securityToken:String类型,当使用临时AKSK访问时需要该参数。
    说明:

    使用临时AKSK获取连接时,可能因为临时AKSK失效,导致连接中断。建议仅在测试场景使用。

  • workspaceId:String类型。当前环境所属workspace的ID。
  • endpointId:String类型。当前使用SQL端点的ID。
  • lakeformation_instance_id:String类型。用户所使用lakeformation实例ID。

示例

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
//以下用例以gsjdbc4.jar为例,如果要使用gsjdbc200.jar,请替换驱动类名(将代码中的“org.postgresql”替换成“com.huawei.gauss200.jdbc”)
//以下代码将获取数据库连接操作封装为一个接口,可通过给定用户名和密码来连接数据库。

public static Connection GetConnection() {
        //驱动类。
        String driver = "org.postgresql.Driver";
        //数据库连接描述符。
        String sourceURL = "jdbc:fabricsql://10.10.0.13:443/fabricsql_default";
        Connection conn = null;
        Properties properties = new Properties();

        try {
            //加载驱动。
            Class.forName(driver);
        } catch (ClassNotFoundException e ){
            e.printStackTrace();
            return null;
        }
        
        try {
            properties.setProperty("workspaceId", "");
            properties.setProperty("endpointId", "");
            properties.setProperty("lakeformation_instance_id", "");
            properties.setProperty("AccessKeyID", "");
            properties.setProperty("SecretAccessKey", "");
             //创建连接。
            conn = DriverManager.getConnection(sourceURL, properties);
            System.out.println("Connection succeed!");
        } catch (SQLException e) {
            e.printStackTrace();
            return null;
        }
        
        return conn;
    }

相关文档