
今回は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 件のコメント:
コメントを投稿