Webアプリケーションひとめぐり
TreeFrog Frameworkはサーバサイドのフレームワークです。WebアプリケーションはModel/View/Controllerに分割されており、それぞれ動的ライブラリ(共有ライブラリ、DLL)になります。その結果、Webアプリケーションは高速に動作することが可能なのです(もちろん記述するコードに依存しますが)。
TreeFrogアプリケーションの作成をひとめぐりしてみましょう。テキストの追加、編集、削除だけができる単純なブログシステムをつくってみます。
アプリケーションのスケルトンを生成
blogappという名でスケルトン(ディレクトリツリーと各種設定ファイル)を作ってみます。コマンドラインから次を実行します。Windowsの場合は、TreeFrog Command Prompt上で実行してください。
$ tspawn new blogapp created blogapp created blogapp/app created blogapp/app/controllers created blogapp/app/models created blogapp/app/models/queries created blogapp/app/models/sqlobjects created blogapp/app/views :
テーブルを作成
データベースにテーブルを作ります。タイトルと内容(ボディ)のフィールドを作りましょう。
ここではMySQLの例を示します。データベースを作る前に、設定された文字セットの情報を確認しておいてください(補足参照)。また、mysqlコマンドラインツールにパスを通しておいてください。
$ mysql -u root -p Enter password: mysql> CREATE DATABASE blogdb; Query OK, 1 row affected (0.01 sec) mysql> USE blogdb; Database changed mysql> CREATE TABLE blog (id INTEGER PRIMARY KEY, title VARCHAR(20), body VARCHAR(200), created_at TIMESTAMP, updated_at TIMESTAMP, lock_revision INTEGER); Query OK, 0 rows affected (0.09 sec) mysql> DESC blog; +---------------+--------------+------+-----+---------------------+-----------------------------+ | Field | Type | Null | Key | Default | Extra | +---------------+--------------+------+-----+---------------------+-----------------------------+ | id | int(11) | NO | PRI | NULL | | | title | varchar(20) | YES | | NULL | | | body | varchar(200) | YES | | NULL | | | created_at | timestamp | NO | | CURRENT_TIMESTAMP | on update CURRENT_TIMESTAMP | | updated_at | timestamp | NO | | 0000-00-00 00:00:00 | | | lock_revision | int(11) | YES | | NULL | | +---------------+--------------+------+-----+---------------------+-----------------------------+ 6 rows in set (0.01 sec) mysql> quit Bye
これでid、title, body, created_at, updated_at, lock_revisionのフィールドを持つblogテーブルができました。created_atと updated_atのフィールドがあると、TreeFrogはそれぞれ作成日時、更新日時を自動で挿入・更新してくれます。また、lock_revisionフィールドは楽観的ロックを実現するためのもので、integer型で作っておけば自動的に作動します。
レコードにあらかじめロックリビジョンを記録しておき、ロックリビジョンが変わっていないことを検証しつつデータを保存すること。ロックをかけないので、デッドロックの心配がありません。処理速度の向上もちょっとだけ期待できます。
MySQLの文字セットを確認するには、mysqlクライアントから次のコマンドを入力します。
mysql> show variables like "char%"; +--------------------------+----------------------------+ | Variable_name | Value | +--------------------------+----------------------------+ | character_set_client | utf8 | | character_set_connection | utf8 | | character_set_database | utf8 | | character_set_filesystem | binary | | character_set_results | utf8 | | character_set_server | utf8 | | character_set_system | utf8 | | character_sets_dir | /usr/share/mysql/charsets/ | +--------------------------+----------------------------+
これはUTF-8の例です。文字セットがすべてそろっていないと(character_set_filesystemはbinaryでよい)、TreeFrogはインサートに失敗したり、文字化けしたり、正常に動作しませんでした。もし設定が異なっていたら、MySQLのマニュアルを参照して設定し直してください。その設定が終わってから、データベースの作成、テーブルを作成するのが間違いないようです。
