Hello, Scooter Framework!
ここでの動作環境は次のとおり。
- OS: Mac OS X 10.6.2
- Java: 1.6.0_17
- MySQL: 5.1.41
- Webブラウザ: Safari 4.0.4
ここで作成してみるWebアプリケーションは原稿管理。単一テーブルで、タイトル, 記事本文を格納する。
まずはダウンロードページより成果物一式を取得する。ここでダウンロードしたのは「scooter-binary-1.0.RC2.zip」。ファイル取得後、任意のディレクトリに展開する。
% jar xvf scooter-binary-1.0.RC2.zip
展開が完了するとscooterディレクトリが作成される。このディレクトリ名はContext Nameとなり、データベースの名前やURIで使用される。名前をtypescriptにリネームし、cdで移動。tools/init.jarを使用して初期化する。
% mv scooter typescript
% cd typescript
% java -jar tools/init.jar mysql
初期化後に表示されるメッセージ
Don't forget to download MySql jdbc jar file, name it "mysql.jar" and put it under both references/jdbc-clients and webapps/typescript/WEB-INF/lib directories.
にしたがい、MySQLのJDBC jarファイルを取得。mysql.jarにリネームし、references/jdbc-clientsとwebapps/typescript/WEB-INF/lib/にコピーする。コピー後
% java -jar tools/server.jar
を実行してアプリケーションサーバを起動。起動後、Webブラウザでhttp://localhost:8080/にアクセスする。
画面上部の「here」をクリックすると、作成したアプリケーション(http://localhost:8080/typescript/)へ移動する。
それではscaffoldをもちいて、データの入出力がおこなえるようにしてみる。まずはデータベース側の準備だ。ここではScreencastsのCreating a weblog in 15 Minutesデモ内で使用されていたSQL文を抜き出し、改変したものを使用した。
- データベース名: typescript_development
- テーブル名: posts
- フィールド情報: 別表を参照
| フィールド名 | 型 | オプション |
|---|---|---|
| id | int(11) | NOT NULL, auto_increment |
| name | varchar(255) | |
| title | varchar(255) | |
| content | text | |
| created_at | timestamp | |
| updated_at | timestamp |
改変したSQL文
DROP DATABASE IF EXISTS typescript_development;
CREATE DATABASE typescript_development DEFAULT CHARACTER SET utf8;
USE typescript_development;
DROP TABLE IF EXISTS posts;
CREATE TABLE posts (
id int(11) NOT NULL auto_increment,
name varchar(255),
title varchar(255),
content text,
created_at timestamp,
updated_at timestamp,
PRIMARY KEY (id)
)
データベースが準備できたら、tools/generate.jarをもちいてコードを生成しよう。
% java -jar tools/generate.jar scaffold post
この操作で必要なファイルが生成される。作成されるファイルは次のとおり。
- src/typescript/controllers/PostsController.java
- src/typescript/models/Post.java
- test/typescript/models/PostTest.java
- webapps/typescript/WEB-INF/views/posts/index.jsp
- webapps/typescript/WEB-INF/views/posts/show.jsp
- webapps/typescript/WEB-INF/views/posts/add.jsp
- webapps/typescript/WEB-INF/views/posts/edit.jsp
- webapps/typescript/WEB-INF/views/posts/paged_list.jsp
scaffold実行後、Webブラウザでhttp://localhost:8080/typescript/posts/にアクセスする。
scaffoldで生成されたコードをベースとし、各種コントローラやモデルに必要なコードを書き加えていけば、あっという間にWebアプリが仕上がる。構文については、各種リファレンス(Complete API, Command line tools, Compare Rails and Scooter)を参照されたい。