(3)-今回は、データベースアクセスの練習をします。制限事項:Rails分かりません...今や、Webアプリフレームワークと言えばRailsなしでは語れないことは重々承知していますが、わたくしRailsほとんどやったことありません(インストールだけ)ので、比較してあれこれ言うのはできません。(というか、有名どころのフレームワークは説明できるほど知っているものがありません...)Liftにおける役割分担"archetype:generate"で生成されるファイルの役割分担について。Liftの仕様やその変遷についてほとんど知らないので、バージョン2.4-M4をちょっと触ってみた素人の目線で。カスタムタグも使える?けど、カスタムタグ無しで代わりに既存のタグの属性にclass="lift:(function-class.function-name)"(下記例参照)とすることでテンプレートにできる。(yuroyoroさんのサイトにあるlift:snippetカスタムタグが使えないのはバージョンの違いなのか、それとも設定デフォルト値の違いなのか、今のところ不明。)(Scala)Boot.scala初期設定。メニューの設定なども行える。(Scala)snippet最終的にXHTMLとして出力する文字列を返す関数の定義と、任意の関数の定義。(Scala)snippet以外(Testは除く)モデル、クラスライブラリなど?が含まれる。(Scala)TestコードBDDスタイルのテストケースが作成される。class="lift:HelloWorld.howdy">[HelloWorld.howdy]</div>※カギカッコはHTMLファイルを直接ブラウザやWYSIWYGエディタで見たときに、値が出力される位置を確認するために書いています。src/main/webapp/index.htmlを練習に使うとしたら、最低限index.htmlとsnippet/*.scalaだけ編集すれば動かせます。今回はこれをベースに実験します。実際に稼動させる環境は任意のサーブレットコンテナとなりますが、ローカルテスト環境はMavenで完結させるためJettyを使います。起動するには、以下のコマンドを実行します。コマンドウィンドウは占有されるので、Jetty用に1つ開いておきましょう。-U※"-U"オプションは「依存ライブラリの更新を強制的にチェックするようになる」(参考サイト参照)だそうです。JettyをMavenのデフォルト設定で使用した場合、何度かホットデプロイを繰り返すとOutOfMemoryが発生してしまいます。Ctrl+Cで停止できない場合は、タスクマネージャから停止しましょう。これを回避するには、環境変数MAVEN_OPTSもしくは直接mvn.batに、Java起動オプションを設定します。このオプションは今後Mavenで起動するJavaプロセスすべてに影響します。前回作成したnoteというプロジェクトで続けます。snippetを作ります。HelloWorld.scalaと同じディレクトリにSelectDB.scalaを作成します。<strong>users</strong>}とします。class="lift:SearchDB.users">[LIST]</span></div>に書き換えます。この状態で、コンパイルを実行し完了してからJettyがリロードするのを待って、ページを再表示してみます。上手く表示されたら、テンプレートからsnippetを呼び出すことに成功したことになります。※scalaファイルはJetty起動時にコンパイルされますが、scalaファイルを変更したあとでホットデプロイする場合は、手動でコンパイルをしてください。続いて、データベースからSQLを使って値を取得し、一覧として表示させます。</tbody></table></div>に書き換えます。デフォルトでは、組み込みDBのH2が適用され、プロジェクトの直下にDBファイルが作成されています。このusersテーブルの内容が表示されます...が、usersテーブルは最初は空です。Up"でユーザを追加すれば、一覧に反映されるはずです。今度は、他のDBMSに切り替えてみます。ここではPostgreSQL8.3を使います。DBは別途用意してください。"public.users"というテーブルが存在しない場合は自動的に作成されます。pom.xmlをEclipseのPOMエディタで開き、"Dependencies"タブを選択すると、以下の画像のようなページが開きます。"Add"ボタンを押すとDependencies検索ダイアログが開くので、ダイアログの上側の入力欄に"postgre"と入力するといくつか候補が表示されます。8.3-603.jdbc4を選択すると赤枠内のところに情報が表示されるので、残りを入力してファイルを保存すれば、PostgreSQLが登録されます。</dependency>のように反映されます。postgresと入力し、Jettyを再起動します。vendorPG)とすることもできます。これを使って、デフォルト以外の接続先を設定することもできそうです。)最後に、modelを使った検索。Userというmodelがデフォルトで生成されているので、これを使ってSQLの場合と同じように表示させてみましょう。以下の画像は、データを追加して一覧表示したところです。SQLの場合もmodelの場合も、リストの操作がしやすいのが良いですね。Javaではこうはいきませんからね。Liftの流儀として洗練されているかどうかは判断できませんが、Liftのスタートアップとしてはこんなところでしょうか。Centralに公開したのでメモ。8でツールを作ってみたJavaFXの練習の続きです。(2)プロフィールid:argiusはてなブログをはじめよう!argiusさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。