今回はWebアプリを作るなら必須のDB接続をしたいと思います。
Vert.xはJavaで動いていますので、
JDBCを使ってMySQLへ接続いたしますが、
jdbc-persistor-v1.2というVert.xのモジュールを使ってみましょう。
jdbc-persistor-v1.2のダウンロード
まずはモジュールをダウンロードします。プロジェクトディレクトリまで移動し、
vertx install com.bloidonia.jdbc-persistor-v1.2 -repo vert-x.github.io vertx install vertx.work-queue-v1.2 -repo vert-x.github.ioと、モジュールをインストールします。
したのwork-queueはjdbc-persistorの依存モジュールです。
-repoを指定するのは、GitHubのURLが変更になったため、
指定無しでインストールが出来なくなった為です。
インストールしたら、プロジェクトディレクトリに
./modsというディレクトリが出来ていると思います。
mysql-connector-javaのインストール
yumでmysql-connector-javaをインストールし、シンボリックリンクをモジュールのディレクトリへ作成します。
yum install mysql-connector-java rpm -ql mysql-connector-java | grep jar ln -s /usr/share/java/mysql-connector-java-5.1.17.jar /path/to/project/mods/com.bloidonia.jdbc-persistor-v1.2/lib/ ln -s /usr/share/java/mysql-connector-java.jar /path/to/project/mods/com.bloidonia.jdbc-persistor-v1.2/lib/rpmはjarファイルのパス確認の為に使っています。
/usr/shareにjarが無ければrpmで確認して下さい。
プログラム
今回はモジュールとEventBusを利用します。MySQLはlocalhost:3306で動いているものとします。
データベース名はvertx、ユーザ名/パスワードはadminとしています。
テーブルは下のような感じで。
CREATE TABLE `test` ( `_id` int(11) unsigned NOT NULL AUTO_INCREMENT, `num` int(11) unsigned NOT NULL, PRIMARY KEY (`_id`) );
load('vertx.js'); // サーバーインスタンスを生成 var server = vertx.createHttpServer(); // ルーティングするインスタンスを生成 var rm = new vertx.RouteMatcher(); // イベントバスインスタンス var eb = vertx.eventBus; // SELECT文のテスト rm.get('/select', function(req) { eb.send('test.persistor', { action: 'select', stmt : 'SELECT * FROM test ORDER BY _id ASC;' }, function(reply) { // HTTPレスポンスヘッダーにContent-Length追加しないとエラーになるので、 req.response.setChunked(true); if(reply.status === 'ok') { req.response.write('Vert.x
' + rec._id + ' | ' + rec.num + ' |
以上でアプリケーションを実行するとMySQLへ接続出来ていると思います。
一応これでテーブルの中身を出力する事が出来ました。
0 件のコメント:
コメントを投稿