iPhoneApplication FMDBの使い方
Sponsored Links
皆さんこんにちわ
お元気ですか?私は元気です。
最近失速気味で申し訳ない。記事に書きたいこと、勉強していることは増えているのですが、どうしても時間が取れず;;
さて、本日はFMDBの使い方について
sqliteと呼ばれるDBのアプリケーションが存在するのですが、それをiPhoneの開発時に簡単に使えるライブラリです。
ちなみに私のXcodeのVersionは5(5.2)です。
外部からライブラリを入れるので色々使う時にはライセンスなどの注意が必要です。
FMDB
導入方法
Download
ライブラリを導入
ダウンロードしたFMDBを解凍後、ライブラリを導入する
解凍したフォルダの中にあるsrcを開く、
プロジェクトはこのような感じです。
この中からfmdb.m以外をプロジェクトへドラッグアンドドロップ
Finishを押す。
この部分のLinked Frameworks and Librariesの+を押し、libsqlite3.0.dylibを選択しaddを押す。
使用法
データベースの作成・読み込み
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { //Documentフォルダの検索 NSArray *paths = NSSearchPathForDirectoriesInDomains( NSDocumentDirectory, NSUserDomainMask, YES ); NSString *dir = [paths objectAtIndex:0]; //file.dbのDBファイルを作る。存在していれば読みこむ FMDatabase *db= [FMDatabase databaseWithPath:[dir stringByAppendingPathComponent:@"file.db"]]; NSString *sql = @"CREATE TABLE IF NOT EXISTS test (id INTEGER PRIMARY KEY AUTOINCREMENT,testname TEXT);"; [db open]; [db executeUpdate:sql]; //SQL実行 [db close]; return YES; }
一応、アプリ立ち上がった時に実行するように組んでます。
うん、フォルダを検索して、なければ作る。ただそれだけ。
補足:ヘッダーに
#import "FMDatabase.h"
#import "FMResultSet.h"
を付けてください。
SQLを実行する
INSERT UPDATEを実行
//INSERT文を作る NSString *insertSQL = @"INSERT INTO test(testname) VALUES (?)"; [db open]; //?に値を入れる配列を作る NSArray *insertArgument = [[NSArray alloc] initWithObjects:@"test", nil]; //SQLを生成 [db executeUpdate:insertSQL withArgumentsInArray:insertArgument]; [db close];
通常のSQLを生成して、動的に変化させる部分を配列で作っています。
SQLをexecuteUpdateで実行しています。
SELECTを実行
NSString *selectSQL = @"select * from test"; [db open]; //結果を取得 FMResultSet *results = [db executeQuery:selectSQL]; //結果を取り出し while( [results next] ){ //テストネームのカラムを取得する NSString *testname = [results stringForColumn:@"testname"]; NSLog(@"%@",testname); } [db close];
同じようにSQLを生成していますが、実行するメソッドをexecuteQueryを使用しています。
取得した結果をFMResultSetに格納し、whileにより、一つ一つ処理しています。