Skip to content →

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

PROFILE

入江 慎吾
イリテク株式会社代表取締役 / メンターマッチングサービスMENTAを運営(月間流通額700万突破)/ 累計20個以上のWEBサービスやアプリを開発 / CAMPFIREとコミュニティツールVoyageを共同開発中 / 「自分のサービスで生きていく」をコンセプトに個人開発オンラインサロン「入江開発室」を運営(詳しいプロフィール)

SPONSER

Published in 開発奮闘記