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

<h2>初めに</h2>

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

<h3>手順１: IBM Cloudのアカウントを作成</h3>

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

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

<figure class="wp-block-image size-full is-resized"><img src="https://alpcom.co.jp/cms/wp-content/uploads/image-9.png" alt="" class="wp-image-476" width="401" height="441"/></figure>

<h3>手順２： Db2 サービスの作成</h3>

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

<figure class="wp-block-image size-full is-resized"><img src="https://alpcom.co.jp/cms/wp-content/uploads/image-12.png" alt="" class="wp-image-479" width="513" height="291"/></figure>

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

<figure class="wp-block-image size-large is-resized"><img src="https://alpcom.co.jp/cms/wp-content/uploads/image-14-1024x641.png" alt="" class="wp-image-481" width="782" height="489"/></figure>

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

<figure class="wp-block-image size-large"><img src="https://alpcom.co.jp/cms/wp-content/uploads/image-15-1024x372.png" alt="" class="wp-image-482"/></figure>

<h3>手順３： Db2を使用する</h3>

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

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

<figure class="wp-block-image size-large"><img src="https://alpcom.co.jp/cms/wp-content/uploads/image-17-1024x252.png" alt="" class="wp-image-484"/></figure>

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

<figure class="wp-block-image size-large"><img src="https://alpcom.co.jp/cms/wp-content/uploads/image-19-1024x485.png" alt="" class="wp-image-486"/></figure>

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

<figure class="wp-block-image size-full is-resized"><img src="https://alpcom.co.jp/cms/wp-content/uploads/image-22.png" alt="" class="wp-image-489" width="596" height="333"/></figure>

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

<figure class="wp-block-image size-large"><img src="https://alpcom.co.jp/cms/wp-content/uploads/image-24-1024x427.png" alt="" class="wp-image-491"/></figure>

<h3>手順４： プログラムから使用する</h3>

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


<figure class="wp-block-image size-large"><img src="https://alpcom.co.jp/cms/wp-content/uploads/image-25-1024x447.png" alt="" class="wp-image-492"/></figure>



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

<figure class="wp-block-image size-full is-resized"><img src="https://alpcom.co.jp/cms/wp-content/uploads/image-26.png" alt="" class="wp-image-493" width="405" height="217"/></figure>

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

<figure class="wp-block-image size-large"><img src="https://alpcom.co.jp/cms/wp-content/uploads/image-27-1024x459.png" alt="" class="wp-image-494"/></figure>

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

<ol><li>「npm install ibm_db」コマンドを実行し、db2接続用ドライバを導入します。</li><li>「プログラムを記載します」<br>　db2test.js<br>   ※ xxxxxは、上記の資格情報に記載の値を入れてください。</li></ol>

<pre class="wp-block-code"><code>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' );
    });
  });
});</code></pre>

<p>3. プログラムを実行します。<br>   $ node db2test.js</p>

<pre class="wp-block-code"><code>&#91;
  {
    EMPLOYEEID: 100,
    NAME: 'Tom',
    PROFILE: '{"hobby":"baseball","license":"driver"}'
  }
]
done</code></pre>