
# 连接数据库
在创建数据库连接之后，才能使用它来执行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为DataArts Fabric服务终端节点。  - 使用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。   |
   
#### 示例
```
//以下用例以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;
    }
```
