Skip to content

Instantly share code, notes, and snippets.

@siddhanth
Last active August 29, 2015 14:21
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save siddhanth/01d78ee7464a156b55df to your computer and use it in GitHub Desktop.
Save siddhanth/01d78ee7464a156b55df to your computer and use it in GitHub Desktop.
Sqlite helper function for Objective C
#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