コンテンツへスキップ →

iOSでSQLiteを使う場合の手順

iOSでデータの保存方法はいろいろありますが、はじめてSQLiteを使ってみました。量が多い場合は慣れ親しんだSQLが便利ですね。

sqlite

SQLiteを使う準備

sqlite3.0.dylibを追加

sqlite

かんたんに扱いやすくしてくれるライブラリ「FMDB」を利用

FMDBから、ファイルをDLして解凍後、fmdb.m以外を追加します。
file
参考)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」で見ると便利です。
sqlite2

[sc name=”ios”][sc name=”engeneer”]

SHARE

スキルアップにMENTA

MENTAはいろんなプロに相談できるNo1メンターサービスです。

僕自身もプロダクトの壁打ち・相談にのっています。個人開発でもコードレビュー、セキュリティ面のチェック、デザイン、広告、コンテンツマーケ、SNS集客について相談する、など使えます。

YouTubeでも発信中!

PROFILE

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

カテゴリー: 開発奮闘記