ごらくらいふ

プログラミングしたりゲームしたり

SQLite3 に SQLをサクッと実行できるラッパー「YJMSQLiteQueryExecuter」を作りました!!!

github.com

「既存コードあるから!」とSQLite扱う仕事引き受けたら sqlite3 function直書きしかなくて怒髪天を突いたのでつくりました。

以下、READMEの内容を日本語でべちゃっと書きます。

機能

  • インスタンスSQL渡すだけで実行できます!
    • 自分でstepさせたりする必要ないよ!
  • 名前付きパラメータのbindができます!

必須

  • libsqlite3.dylib

使い方

initialize

重要!必須!前提!

sqlite3 *sqlax;
NSString *filePath = @"your/sqlite/file/path";
sqlite3_open([filePath UTF8String], &sqlax);

YJMSQLiteQueryExecuter *exec = [[YJMSQLiteQueryExecuter alloc]init];
exec.database = sqlax;
run query
NSString *createSql = @"CREATE TABLE IF NOT EXISTS names (name TEXT)";
[exec query:createSql];
run query with named parameter
NSString *insertSql = @"INSERT INTO names(name) VALUES(:name)";
NSString *name = [NSString stringWithFormat:@"%@%d",@"name_",arc4random() % 99];

NSMutableArray *params = [@[] mutableCopy];
[params addObject:[YJMSQLiteNamedParameter namedParameterWithValue:name target:@":name" type:SQLITE_TEXT]];

[exec query:insertSql withNamedParams:[params copy ]];
get results of select query
NSString *selectSql = @"SELECT * FROM names";
NSArray  *records = [exec query:selectSql];

[records enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
    NSDictionary *record = obj;
    NSLog(@"%@",record[@"name"]);
}];

Install

  • Manual
    • YJMSQLiteNamedParameter.h/m を使用したいプロジェクトにコピーしてください!
    • YJMSQLiteQueryExecuter.h/m を使用したいプロジェクトにコピーしてください!

License

MIT

Author

yajamon

謝辞

デモのコードにはこちらを参考にさせていただきました!!

otiai10.hatenablog.com