search
LoginSignup
1

posted at

updated at

IBM Cloud でDb2インスタンスを作成し、 Node.jsからアクセスしてみよう

初めに

以前の投稿で、「Db2でJSONデータを扱う」という投稿をし、IBM Cloud のDb2を使用したと記載しましたが、今回は、具体的にIBM CloudでDb2を使用する方法をご紹介します。

手順1: IBM Cloudのアカウントを作成

「https://cloud.ibm.com/registration」にアクセス、必要な項目を入力し、アカウントを作成します。

※以前はクレジットカードの登録が不要でしたが、現在はクレジットカードの登録が必要になっています。

手順2: Db2 サービスの作成

①「カタログ」アイコンをクリックし、「カタログ」ページに遷移し、テキストボックスに「db2」と入力します。出てきたリストから「Db2」を選択します。

②今回は無料で試用できるように、料金プランは「Lite」を選択します。使用条件同意にチェックをつけ、「作成」をクリックします。

③リソース・リストの画面に遷移し、「サービスおよびソフトウェア」の欄にDb2ができたことを確認します。
最初は状況がプロビジョニング中になっていますが、しばらく待つと、アクティブ状態になり、使用可能になります。

手順3: Db2を使用する

①上記でできたリソースの名前のところ(上記図のDb2-7f)のところをクリックします。

②Db2のリソース画面に切り替わるので、「Go to UI」をクリックします。

③「SQL」をクリックすると、SQLを実行できる画面になります。

④「新規作成」をクリックし、SQL入力画面を表示します。

⑤SQLを入力し、「すべてを実行」をクリックすると、入力したSQLが実行されます。

手順4: プログラムから使用する

①Db2のリソース画面から、「サービス資格情報」をクリックし、遷移した画面で、「新規資格情報」をクリックします。

②「名前」を任意の名前に変更し、「追加」ボタンを押します。

③資格情報が作成され、ホスト名やID、パスワードを確認することができます。その情報を利用して、プログラムから接続します。

Node.jsから接続する場合は以下のようになります。

  1. 「npm install ibm_db」コマンドを実行し、db2接続用ドライバを導入します。
  2. 「プログラムを記載します」
     db2test.js
    ※ xxxxxは、上記の資格情報に記載の値を入れてください。
const ibm_db = require( 'ibm_db' );

const db_con_str =
"DRIVER={DB2}"
  + ";DATABASE=" + "xxxxx"
  + ";HOSTNAME=" + "xxxxx"
  + ";PORT=" + "xxxxx"
  + ";PROTOCOL=TCPIP"
  + ";UID=" + "xxxxx"
  + ";PWD=" + "xxxxx"
  + ";Security=SSL"
;

const sql_str = "SELECT EMPLOYEEID, NAME, SYSTOOLS.BSON2JSON(PROFILE) as PROFILE FROM EMPLOYEES;";

ibm_db.open( db_con_str, function( err, conn ){
  if( err ) return console.log( err );

  conn.query( sql_str, function( err, data ){
    if( err ) console.log( err );

    console.log( data );

    conn.close( function(){
      console.log( 'done' );
    });
  });
});

3. プログラムを実行します。
$ node db2test.js

[
  {
    EMPLOYEEID: 100,
    NAME: 'Tom',
    PROFILE: '{"hobby":"baseball","license":"driver"}'
  }
]
done

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
1