joliを使ってデータベースを叩いてみる何となく画面の作り方が分かってきたので、次はデータベースを触りたいなという事で調べてみると、Titanium.Database.DBというインターフェースが用意されています。execute位しか無くて、ローレベル過ぎて面倒くさいです。iPhoneのネイティブアプリ開発ですらCoreDataが使えるというのに。僕はCoreDataはアンチなんですが、ORMは必須なゆとりプログラマなので、なんか無いのと思って調べてみたところjoli.jsというのが見つかりました。ソースを眺めてみると全体で900行くらいの超軽量ORMで、当然Webフレームワークなんかと比べると全然機能は少ないですけど、SQL生で処理するよりは全然楽なので、試してみる事にしました。以下がサンプルコードになります。本と著者のテーブルを作って、データベースに突っ込んでから、テーブルビューに表示しています。本題とは関係ありませんが、SQLの結果を処理するのにundersocre.jsを使っています。underscore.jsだろうと、backbone.jsだろうとincludeしとけば動くようです。Ti.UI.createTabGroup({tabs:[tab]});tg.open();簡単な処理しかしてないのですが、幾つか注意点があります。モデル定義では制約をカラム毎にしかつけられません。KEYはカラム定義と同時に行います。requestが上がっているのですが、まだ取り込まれていませんので、欲しい人は自分も欲しい!とコメントしておきましょう。Joinじゃね?と思わなくはないです。Join風に指定すれば良いわけですね。この場合、execute時にarrayを指定しなければなりません。books’なんていうテーブルは無いので、エラーになります。現時点では複数テーブルが想定されていないんですね。arrayを指定するとオブジェクトにならずにハッシュで返ってきますので問題ありません。'');q.execute('array')制約の書き方に制限があるものの、モデルの定義がコード上でできるのはいいですね。無駄にスキーマファイルとかを管理しなくて良いので嬉しいです。コードを読んでいるとmigration機能もついているようなので、また必要になり次第記事を書こうと思います。あと、とりあえずTitaniumでiPhoneアプリを作ってからAndroidに対応しようと思います。上記のサンプルコードはiPhoneでしか動きません。Androidの開発経験が無いので、Titaniumもワカラン、Androidもワカランというのでは全然開発が進まない気がしたので、まずはTitanium力を向上させてからAndroidを倒そうとそういう風に思っています。