私はiPhone用に開発しており、SQLiteで作業するための優れたCocoa/Objective-Cライブラリを探しています。標準の手続き型SQLite C APIを使用したくありません。 Objective-Cセクションの sqlite.org にオプションがありますが、ライブラリAPIの設計、安定性、機能の点でどちらが最適かはわかりません。私は積極的に開発されており、うまくいけばしばらくの間使用されるものを使用したいと思います。使用経験に基づいた提案はありますか?
ありがとう
私は個人的に [〜#〜] fmdb [〜#〜] を使用しており、最後の更新は昨日でした。
私が見つけた最も簡単なものはこれです https://github.com/misato/SQLiteManager4iOS
Ester SanchezによるSQLiteManager。
基本的には次のように使用します。
NSArray *results = [dbManager getRowsForQuery:@"SELECT * FROM table WHERE id = 1"];
results
は辞書を含む配列です。各辞書は、キーがテーブルの各列の名前である単一の返された行です。
その後、次のようなことができます。
NSDictionary *aPerson = [results objectAtIndex:0];
NSString *firstName = aPerson[@"firstName"];
NSString *email = aPerson[@"email"];
FMDatabaseのファンでもありますが、独自のバージョンをカスタマイズする必要がありました。私のアプリは、オブジェクトをデータベース表現との間で透過的に変換するArchDBObjectと呼ばれるレイヤーを使用しています。私は何らかの形でそれをリリースすることを考えていますが、まだどのように決定するかはまだ決めていません。
いずれにせよ、FMDatabaseは https://github.com/ccgus/fmdb で入手できます。
FMDBは、C呼び出しや型変換を処理する必要がない最も軽い方法でありながら、SQLへの完全なアクセスを提供するため、素晴らしいです。
オブジェクトリレーショナルラッパーについて私が一般的に嫌いなのは、生成されるSQLから離れすぎて、パフォーマンスが低下し始める可能性があることです。
私は最後の数時間をオプションを見て過ごしました-まだこれらのどれも生産されていなかったので、YMMV。
私が見つけた最軽量のラッパーは次のとおりです。
http://th30z.netsons.org/2008/11/objective-c-sqlite-wrapper/
正式な名前があるかどうかはわかりません。これはたった1つのクラスであり、SQLite APIの厄介さを抽象化し、SQLを直接操作する価値を残しています。 SQLをすでに知っていると仮定すると、学習曲線は5分です。非常に小さいため、問題が発生した場合は簡単に修正できると想像できます。
必要に応じて、SQLステートメントの作成に使用できるクラスのセットを提供し、SQLiteデータベース接続を処理する簡単な方法を提供する次のリポジトリも参照できます。 https://github.com/ziminji/objective-c-sql-query-builder にあります
ここにFDBMの上にシンプルなORMがあります http://code.google.com/p/chibiorm/ 。
これにより、必要に応じて生のSQLを使用したり、SQLを辞書リストとして返したり、Nice OOスタイルを使用したりできます。