IBM Cloud Docs
使用驱动程序包以编程方式连接

使用驱动程序包以编程方式连接

Db2 on Cloud 驱动程序包中包含用于将客户机应用程序连接到 Db2 on Cloud 数据库的软件。

JDBC

定义 Java™ 应用程序与 Db2 on Cloud 数据库之间的连接。

先决条件

在尝试连接到 Db2 on Cloud 数据库之前,请验证您是否具有先决条件

过程

企业和标准套餐

在每个 Java 应用程序中,通过包含 DriverManager.getConnection 方法来指定用户标识和密码,然后包含下列其中一个 JDBC URL 字符串:

  • 对于使用 SSL 的连接:

    jdbc:db2://<host_name>:<port>/bludb:user=<userid>;password=<your_password>;sslConnection=true;

.NET

定义 .NET 应用程序与 Db2 on Cloud 数据库之间的连接。

先决条件

在尝试连接到 Db2 on Cloud 数据库之前,请验证您是否具有先决条件

过程

以下步骤显示如何使用 .NET 将应用程序连接到数据库。

  1. 在命令提示符处输入以下命令。 这些命令将在计算机上的驱动程序配置文件 (db2dsdriver.cfg) 中创建新条目,并设置连接属性。 此步骤只需执行一次。

    • 企业和标准套餐

      • 对于使用 SSL 的连接:

        db2cli writecfg add -database BLUDB -host <hostname> -port <port>

        db2cli writecfg add -dsn <alias> -database BLUDB -host <hostname> -port <port>

        db2cli writecfg add -database BLUDB -host <hostname> -port <port> -parameter "SecurityTransportMode=SSL"

        其中:

        <hostname>: 服务器的主机名

        <port>: 服务器的端口号

        <alias>: 要用于建立 .NET 连接的 DSN 别名的名称。 请选择对您有意义的名称;例如,analytics

  2. 可选):验证与数据库的 .NET 连接,请在命令提示符处输入以下命令:

    testconn40 "DATABASE=<alias>;UID=<user_id>;PWD=<password>;"

    其中:

    <alias>: 在步骤 1 中使用 db2cli writecfg 命令创建的 DSN 别名的名称。

    <user_id>: 您的 Db2 on Cloud 用户标识。

    <password>: 用于连接到 Db2 on Cloud 数据库的密码。

示例

以下语法显示使用 .NET 驱动程序来建立数据库连接的样本 C# 代码。

using System;
using IBM.Data.DB2;

namespace dotNetSSLTest
{
    class Program
    {
        static void Main(string[] args)
        {
            DB2Command MyDB2Command = null;
            // Use the dsn alias that you defined in db2dsdriver.cfg with the db2cli writecfg command in step 1.
            String MyDb2ConnectionString = "database=alias;uid=userid;pwd=password;";
            DB2Connection MyDb2Connection = new DB2Connection(MyDb2ConnectionString);
            MyDb2Connection.Open();
            MyDB2Command = MyDb2Connection.CreateCommand();
            MyDB2Command.CommandText = "SELECT branch_code, city from GOSALES.BRANCH";
            Console.WriteLine(MyDB2Command.CommandText);

            DB2DataReader MyDb2DataReader = null;
            MyDb2DataReader = MyDB2Command.ExecuteReader();
            Console.WriteLine("BRANCH\tCITY");
            Console.WriteLine("============================");
            while (MyDb2DataReader.Read())
            {
                for (int i = 0; i <= 1; i++)
                {
                    try
                    {
                        if (MyDb2DataReader.IsDBNull(i))
                        {
                            Console.Write("NULL");
                        }
                        else
                        {
                            Console.Write(MyDb2DataReader.GetString(i));
                        }
                    }
                    catch (Exception e)
                    {
                        Console.Write(e.ToString());
                    }
                    Console.Write("\t");

                }
                Console.WriteLine("");
            }
            MyDb2DataReader.Close();
            MyDB2Command.Dispose();
            MyDb2Connection.Close();
        }
    }
}

ODBC 或 CLI

定义 Microsoft Windows ODBC 或 CLI 应用程序与 Db2 on Cloud 数据库之间的连接。

先决条件

在尝试连接到 Db2 on Cloud 数据库之前,请验证您是否具有先决条件

过程

  1. 在 Linux 操作系统上的命令 shell 中、Windows 命令提示符处或 Windows 操作系统上的 Db2 命令窗口中,输入以下命令:

    :这些命令将在计算机上的驱动程序配置文件 (db2dsdriver.cfg) 中创建新条目,并设置连接属性。 此步骤只需执行一次。

    • 企业和标准套餐

      • 对于使用 SSL 的连接:

        db2cli writecfg add -database BLUDB -host <hostname> -port <port> -parameter "SecurityTransportMode=SSL"

        db2cli writecfg add -dsn <alias> -database BLUDB -host <hostname> -port <port>

        其中:

        <hostname>: 服务器的主机名

        <port>: 服务器的端口号

        <alias>: 您选择的 DSN 别名

  2. 可选):要测试与数据库的连接,请在命令提示符处运行以下命令:

    db2cli validate -dsn <alias> -connect -user <user_id> -passwd <password>

    其中:

    <alias> 是使用 db2cli writecfg 命令创建的 DSN 别名

    <user_id> 来自预先收集的连接凭证

    <password> 来自预先收集的连接凭证

  3. 可选):要向 Microsoft ODBC 驱动程序管理器注册数据源名称 (DSN),并使用 Microsoft ODBC 应用程序,请运行以下命令。 缺省情况下,会将 DSN 创建为用户 DSN。

    db2cli registerdsn -add -dsn <alias>

    其中:

    <alias> 是使用 db2cli writecfg 命令创建的 DSN 别名

ODBC 数据源管理员

使用 Microsoft ODBC 数据源管理器工具来定义 ODBC 应用程序或 CLI 应用程序与 Db2 on Cloud 数据库之间的连接。

先决条件

在尝试连接到 Db2 on Cloud 数据库之前,请验证您是否具有先决条件

过程

  1. 安装 Db2 驱动程序包

  2. 打开 ODBC 数据源管理器,并为 Db2 驱动程序包创建“用户 DSN”或“系统 DSN”。

  3. 单击高级设置。 针对 Db2 on Cloud 服务器,输入以下 CLI 参数的值:主机名端口数据库

  4. 对于 SSL 连接,请为 CLI 参数安全性输入值 SSL

  5. 单击应用

  6. 要测试连接,请返回到 ODBC 数据源管理器的主页。 针对所创建的 DSN,单击配置。 输入服务器的用户标识和密码,然后单击连接

PHP

定义 PHP 应用程序与 Db2 on Cloud 数据库之间的连接。

先决条件

在尝试连接到 Db2 on Cloud 数据库之前,请验证您是否具有先决条件

过程

方案 1:从 IBM Cloud 外部进行连接:

  1. 通过 Web 控制台下载 Db2 驱动程序包,然后在将运行 PHP 应用程序的机器上安装该驱动程序包。

  2. 使用 odbc_connect 函数 连接到 BLUDB 数据库。

    PHP 代码示例:

    <?php
    $database = "BLUDB";          # Get these database details from
    $hostname = "<Host-name>";    # the web console
    $user     = "<User-ID >";     #
    $password = "<Password>";     #
    $port     = "<non-ssl_port>"; #
    $ssl_port = "<port>";         #
    # Build the connection string
    #
    $driver  = "DRIVER={IBM DB2 ODBC DRIVER};";
    $dsn     = "DATABASE=$database; " .
               "HOSTNAME=$hostname;" .
               "PORT=$port; " .
               "PROTOCOL=TCPIP; " .
               "UID=$user;" .
               "PWD=$password;";
    $ssl_dsn = "DATABASE=$database; " .
               "HOSTNAME=$hostname;" .
               "PORT=$ssl_port; " .
               "PROTOCOL=TCPIP; " .
               "UID=$user;" .
               "PWD=$password;" .
               "SECURITY=SSL;";
    $conn_string = $driver . $dsn;     # Non-SSL
    $conn_string = $driver . $ssl_dsn; # SSL
    # Connect
    #
    $conn = odbc_connect( $conn_string, "", "" );
    if( $conn )
    {
        echo "Connection succeeded.";
        # Disconnect
        #
        odbc_close( $conn );
    }
    else
    {
        echo "Connection failed.";
    }
    ?>
    

    将此 PHP 代码示例保存到名为 C:\sample.php 的脚本文件中,然后通过命令行运行该脚本,这将生成以下输出:

    C:\> php –f sample.php
    
    Connection succeeded.
    

方案 2:从 IBM Cloud 中的 PHP Web 应用程序进行连接

  1. 在 IBM Cloud 目录中,创建新的 PHP 应用程序。

  2. 在 IBM Cloud“仪表板”中新 PHP 应用程序的“入门”部分中,将应用程序入门模板代码下载到本地工作目录。

  3. 在 IBM Cloud“仪表板”中,创建从 Db2 服务到新 PHP 应用程序的新连接。 (在 IBM Cloud 中创建此连接将使 VCAP_SERVICES 环境变量可供 PHP 应用程序使用。 VCAP_SERVICES 环境变量包含 Db2 服务的数据库详细信息。 与在 PHP 应用程序中对数据库详细信息进行硬编码相比,使用 VCAP_SERVICES 更方便。)

  4. 在本地工作目录中,使用 db2_connect 函数更新 index.php 文件以连接到 BLUDB 数据库。

    示例:

    <!DOCTYPE html>
    <html>
    <head>
        <title>PHP Starter Application</title>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
        <link rel="stylesheet" href="style.css" />
    </head>
    <body>
    <?php
    if( getenv( "VCAP_SERVICES" ) )
    {
        # Get database details from the VCAP_SERVICES environment variable
        #
        # *This can only work if you have used the Bluemix dashboard to
        # create a connection from your dashDB service to your PHP App.
        #
        $details  = json_decode( getenv( "VCAP_SERVICES" ), true );
        $dsn      = $details [ "dashDB" ][0][ "credentials" ][ "dsn" ];
        $ssl_dsn  = $details [ "dashDB" ][0][ "credentials" ][ "ssldsn" ];
        # Build the connection string
        #
        $driver = "DRIVER={IBM DB2 ODBC DRIVER};";
        $conn_string = $driver . $dsn;     # Non-SSL
        $conn_string = $driver . $ssl_dsn; # SSL
        $conn = db2_connect( $conn_string, "", "" );
        if( $conn )
        {
            echo "<p>Connection succeeded.</p>";
            db2_close( $conn );
        }
        else
        {
            echo "<p>Connection failed.</p>";
        }
    }
    else
    {
        echo "<p>No credentials.</p>";
    }
    ?>
    </body>
    </html>
    
  5. 按照 IBM Cloud“仪表板”中 PHP 应用程序的“入门”部分中的指示信息进行操作,将更新从本地工作目录推送到 IBM Cloud。 然后,在 IBM Cloud 中重新启动该应用程序,并在浏览器中查看该应用程序。