iOSでSQLiteを使う場合の手順

iOSでデータの保存方法はいろいろありますが、はじめてSQLiteを使ってみました。量が多い場合は慣れ親しんだSQLが便利ですね。
目次
SQLiteを使う準備
sqlite3.0.dylibを追加
かんたんに扱いやすくしてくれるライブラリ「FMDB」を利用
FMDBから、ファイルをDLして解凍後、fmdb.m以外を追加します。
参考)iOS で SQLite – FMDB の使い方
SQLiteを使ってみよう
まず、ヘッダファイルで読み込み。
#import “FMDatabase.h”
//DBファイルのパス NSArray *paths = NSSearchPathForDirectoriesInDomains( NSDocumentDirectory, NSUserDomainMask, YES ); NSString *dir = [paths objectAtIndex:0]; //DBファイルがあるかどうか確認 NSFileManager *fileManager = [NSFileManager defaultManager]; if (![fileManager fileExistsAtPath:[dir stringByAppendingPathComponent:@"file.db"]]) { //なければ新規作成 FMDatabase *db= [FMDatabase databaseWithPath:[dir stringByAppendingPathComponent:@"file.db"]]; NSString *sql = @"CREATE TABLE test (id INTEGER PRIMARY KEY AUTOINCREMENT,testname TEXT);"; [db open]; //DB開く [db executeUpdate:sql]; //SQL実行 [db close]; //DB閉じる }
こんな感じでサクッと使えてしまいます。かんたん。
INSERT,UPDATEを使う
SQL文を作って値を入れるところはハテナにしておきます。
NSString *sql=@"insert into test (testname) values (?,?);"; [db open]; [db executeUpdate:sql,値,値]; [db close];
SELECTで取り出し
NSString *sql=@"select * from test where testname = ?;"; [db open]; FMResultSet *results = [db executeQuery:sql,値]; [db close]; while( [results next] ){ NSString *testname = [results stringForColumn:@"testname"]; }
Macでテスト結果を確認する
シミュレータの場合、DBファイルは
~/Library/Application Support/iPhone Simulator/(iOS バージョン)/Applications/(UUID)/Documentsの中に生成されます。
これをMacの無料アプリ「SQLite Database Browser」で見ると便利です。
[sc name=”ios”][sc name=”engeneer”]
SHARE
スキルアップにMENTA
MENTAはいろんなプロに相談できるNo1メンターサービスです。
僕自身もプロダクトの壁打ち・相談にのっています。個人開発でもコードレビュー、セキュリティ面のチェック、デザイン、広告、コンテンツマーケ、SNS集客について相談する、など使えます。
YouTubeでも発信中!
PROFILE

入江 慎吾
あらゆるスキルが学べるパーソナルメンターサービスMENTAの代表/個人開発が好きでこれまでに30個ほどのWEBサービスやアプリを作ってきました/福岡のWEB制作会社勤務→フリーランスエンジニア→法人立ち上げ→M&A億単位の売却を経験。 (詳しいプロフィール)
あらゆるスキルが学べるパーソナルメンターサービスMENTAの代表/個人開発が好きでこれまでに30個ほどのWEBサービスやアプリを作ってきました/福岡のWEB制作会社勤務→フリーランスエンジニア→法人立ち上げ→M&A億単位の売却を経験。 (詳しいプロフィール)