Last active
August 29, 2015 14:21
-
-
Save siddhanth/01d78ee7464a156b55df to your computer and use it in GitHub Desktop.
Sqlite helper function for Objective C
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#import "SqliteHelper.h" | |
@implementation SqliteHelper | |
static SqliteHelper *helper; | |
+(SqliteHelper*) get;{ | |
if(helper==nil){ | |
helper=[[SqliteHelper alloc] init]; | |
} | |
return helper; | |
} | |
-(id) init;{ | |
NSString *docDirectory = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) firstObject]; | |
NSString *sqLiteDb = [NSString stringWithFormat:@"%@/%@", docDirectory, SQLLITEDB]; | |
if (sqlite3_open([sqLiteDb UTF8String], &database) != SQLITE_OK) { | |
NSLog(@"Failed to open database!"); | |
}else{ | |
NSString *initQuery = [NSString stringWithFormat:@"CREATE TABLE IF NOT EXISTS %@ (key TEXT PRIMARY KEY,value TEXT);", SQLLITE_TABLE]; | |
sqlite3_stmt *statement; | |
if(sqlite3_prepare_v2(database, [initQuery UTF8String], -1, &statement, nil) \ | |
==SQLITE_OK) { | |
sqlite3_step(statement); | |
} | |
} | |
return self; | |
} | |
-(NSString *)getData: (NSString*) key { | |
NSString *data = nil; | |
NSString *query = [NSString stringWithFormat:@"SELECT value from %@ where key \ | |
= '%@'", SQLLITE_TABLE,key]; | |
sqlite3_stmt *statement; | |
if (sqlite3_prepare_v2(database, [query UTF8String], -1, &statement, nil)\ | |
== SQLITE_OK) { | |
while (sqlite3_step(statement) == SQLITE_ROW) { | |
char *dataChars = (char *) sqlite3_column_text(statement, 0); | |
data = [[NSString alloc] initWithUTF8String:dataChars]; | |
} | |
sqlite3_finalize(statement); | |
} | |
return data; | |
} | |
-(Boolean) setItem:(NSString*) key value:(NSString*) value; | |
{ | |
Boolean flag = false; | |
@try { | |
NSString *query = [NSString stringWithFormat:@"replace into %@ (key,value)values('%@','%@')",\ | |
SQLLITE_TABLE, key, value]; | |
sqlite3_stmt *statement; | |
if (sqlite3_prepare_v2(database, [query UTF8String], -1, &statement, nil)\ | |
== SQLITE_OK) { | |
sqlite3_step(statement); | |
flag = true; | |
}else{ | |
flag = false; | |
} | |
} @catch (NSException *e) { | |
ENInfo(@"%@", [e description]); | |
flag = false; | |
} | |
return flag; | |
} | |
-(Boolean) removeItem:(NSString*) key; | |
{ | |
Boolean flag = false; | |
@try { | |
NSString *query = [NSString stringWithFormat:@"delete from %@ where key='%@'", \ | |
SQLLITE_TABLE, key]; | |
sqlite3_stmt *statement; | |
if (sqlite3_prepare_v2(database, [query UTF8String], -1, &statement, nil)\ | |
== SQLITE_OK) { | |
sqlite3_step(statement); | |
flag = true; | |
}else{ | |
flag = false; | |
} | |
} @catch (NSException *e) { | |
ENDebug(@"%@", [e description]); | |
flag = false; | |
} | |
return flag; | |
} | |
- (void)dealloc | |
{ | |
sqlite3_close(database); | |
} | |
@end |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment