まじめにObjective-CのFMDBの使い方でも書いてみる
たまにはこういうのも書くんだよ。
Objective-CでDBを使う場合、色々と方法があるそうですが、
FMDBを使う場合の導入方法を書いておきます。
まず、DBを作りましょう。
ネットで検索するとコマンドラインを使うとか出てくるけど、
こいつを使えばOK。
Lita - SQLite Administration Tool | David Deraedt
ちょちょいとDBを作って、プロジェクトに取り込みます。
そうしたらここからFMDatabase関連をまるごと持ってきてください。
srcの中に入っているのがプログラム本体なので、
それを適当に入れてください。
もしFinderからドラッグ&ドロップしただけだと、
ファイルがコンパイル対象にならないので注意してください。
こんなエラーが出ます。
"_OBJC_CLASS_$_FMDatabase", referenced from:
よくハマるので注意してください。
これが入ったら、DTOとDAOを作りましょう。
※他に良いデータ整理のモデルがあればぜひ教えて下さい。
DTOとはData Transfer Objectだそうです。
DAOとはData Access Objectだそうです。
具体的には、
DTO・・・
テーブルの構造をそのまんまクラスに書きます。
1カラム目はintで、2カラム目はNSStringで・・・みたいに。
1テーブル1DTOでOKだと思います。
DAO・・・
実際にデータベースにアクセスするためのSQLを書きます。
これも1テーブルにつき1DAOでいいと思います。
CRUD(Create、Read、Update、Delete)すべて書いておいて自分のフォーマットを作っておくとよいでしょう。
コントローラーからの使い方としては、
DTOのインスタンスを作る
→ここにSQLの結果が入る
▼
DAOのインスタンスを作り、メソッドにを使いSQLを実行。
▼
実行したSQLの戻りをDTOのインスタンスに入れる。
▼
DTOからデータを取り出す。
とまぁこんな感じです。
1テーブルにDTOとDAOをそれぞれ作らないといけないから、
ちょっと力技が発生しますね。
自動生成ツールでもあれば重宝するかも。
もしくは若手に勉強のためとか言いながらやらせるのも・・・ゲフンゲフン
サンプルコードも書こうと思ったけど、
疲れたのでまた次回にします。
続く!!