JavaScript
intra-mart
Tabulator
データベース更新

tabulatorを使って、データベースの更新にトライ(2)Open intra-martの設定

概要

最近、WebサーバーサイドではNode.jsが花盛りですが、Javascriptベースの開発環境として、商用では結構使われている「intra-mart」があります。最近、「intra-mart」に触れる機会があり、「Open intra-mart」も公開されていたので、いろいろ試してみました。
最終的に「tabulatorを使って、データベースを更新」までできたので、順次投稿していきます。
前回は、目次だけでしたので、今回より実際に解説していきます。

環境

今回のテスト環境は、以下のとおりです。非力なマシンでも十分動きます。
・CPU:Celron、メモリ:4G
・Windows10 HOME(Fall Creators Update)64bit
・jdk1.8.0_151
・apache-tomcat-9.0.2
・access2013

Open intra-martの設定

  1. まずは、Javaアプリケーションサーバを立ててください。 intra-martではresinを推奨していますが、はじめてみようページのresinのリンク先も切れていますので、筆者はTomcatを利用しています。 jdkとTomcatをセットアップして、「localhost:8080/」にブラウザよりアクセスしてTomcatの初期ページが表示されるようにして下さい。

  2. はじめてみように詳細の手順が記載されています。サンプルプログラム「im-jssp-sample-0.1.2.zip」をダウンロードし、解凍したファイルを「im-jssp-sample.war」にリネームし、「tomcat/webapps」の配下に保管し、Tomcatを再起動するとwarファイルが展開されます。ブラウザから「http://localhost:8080/im-jssp-sample/」にアクセスし、「ようこそ」ページが照会できたらインストールは完了です。

  3. データベースアクセスできる環境の準備。
    • データベースは、今回はMSOfficeに含まれていたACCESSを利用しました。 MySQLなどでもjdbcの設定さえ変えれば、何でも可だと思います。
    • ACCESSのjdbcドライバである、UCanAccessをダウンロードして、「tomcat/lib」に「ucanaccess-4.0.3.jar、commons-lang-2.6.jar、commons-logging-1.1.3.jar、hsqldb.jar、jackcess-2.1.9.jar」の5つのファイルを保存します。
    • jdbcドライバを明示的に読み込む為に「tomcat/bin/catalina.bat」の クラスパスの記述を追加します。
      「set CLASSPATH=%CATALINA_HOME%/lib/ucanaccess-4.0.2.jar;
      %CATALINA_HOME%/lib/jackcess-2.1.6.jar;
      %CATALINA_HOME%/lib/commons-lang-2.6.jar;
      %CATALINA_HOME%/lib/commons-logging-1.1.1.jar;
      %CATALINA_HOME%/lib/hsqldb.jar;」
      ※結果だけを記述していますが、筆者はここまでたどりつくまで「No suitable driver found for jdbc」エラーに苦労しました。

  4. open intra-mart(4)-DBアクセスに詳しく解説がありますが、OPEN intra-martには標準でDBアクセスAPIが無いので、「rubbish-db」を利用します。DBにアクセスできる事でインタラクティブなWebサイトの幅がひろがりますので、ズッキーニさんには感謝です。「rubbish-db」をダウンロードして、その中にある「rubbish-db-1.7.5.jar」を「tomcat/webapps/im-jssp-sample/WEB-INF/lib」にコピーしてください。
    ※rubbishは、jarファイルの明示的な読み込みを記述しなくてもintra-martの起動時に読み込んでくれるようです。

  5. 次にopen intra-mart(5)-DBアクセスを改善するページの最下部にあるソース一式をダウンロードして、その中にある「DatabaseManager.js」を「tomcat/webapps/im-jssp-sample/lib」にコピーしてください。

  6. 最後にTabulatorが使用するライブラリを準備します。筆者は下記サイトから必要なライブラリを「tomcat/webapps/im-jssp-sample/csjs/lib」に保存しました。

アプリの配置

  1. tabulator-dbupdate.htmlとaccess_edit_del.jsは「tomcat/webapps/im-jssp- sample/tabulator-master」のフォルダを作成して配置します。
  2. accessは「tomcat」配下に「test.accdb」を下記のsqlの内容で配置しました。
  3. 「/tomcat/webapps/im-jssp-sample/lib/DatabaseManager.js」のパラメータは以下のように修正して下さい。
    • var DB_URL = "jdbc:ucanaccess://~/tomcat/test.accdb";(Tomcatの絶対フォルダ指定)
    • var DB_USER = "";
    • var DB_PASS = "";
sql
CREATE TABLE test (
   cid int auto_increment NOT NULL PRIMARY KEY,
   name varchar(255) NOT NULL DEFAULT '',
   age tinyint NOT NULL DEFAULT 0,
   adress varchar(255) NOT NULL DEFAULT '',
   code varchar(255) NOT NULL,
   dateofbirth varchar(10) NOT NULL
);
CREATE INDEX IK_test_cid ON test (cid);

※dateofbirthは日付型では無く、文字列にしています。「DatabaseManager.js」に日付型のjava<-->javascriptの変換の考慮がありますが、selectはtabulatorに委ねているので日付データがjsonエラーになったり、insert・updateがエラーになるので日付型を使う事を断念しました。

アプリの実行

上記設定を行い、Tomcatを再起動しブラウザに「localhost:8080/im-jssp-sample/tabulator-master/tabulator-dbupdate.jssp」といれれば動くはずです。次回、さらに解説したいと思います。