ios数据库

来源:互联网 发布:linux vi 如何编辑 编辑:程序博客网 时间:2024/06/06 02:26
#import <Foundation/Foundation.h>#import <sqlite3.h>@interface SqliteManager : NSObject+ (sqlite3 *)getSqlite;+ (void)closeSqlite:(sqlite3 *)sqlite;+ (NSString *)createSql:(NSString *)tableName params:(NSArray *)params;+ (NSString *)insertSql:(NSString *)tableName params:(NSDictionary *)params;+ (NSString *)fetchSql:(NSString *)tableName params:(NSDictionary *)params;+ (NSString *)deleteSql:(NSString *)tableName params:(NSDictionary *)params;+ (NSString *)stringFromChar:(const char*)val;@end
#import "SqliteManager.h"#define DATABASE_NAME @"JieLi.db"@implementation SqliteManager+ (sqlite3 *)getSqlite{    sqlite3 *database = nil;    NSArray *paths =  NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);    NSString *documentDirectory = [paths objectAtIndex:0];    NSString *path = [documentDirectory stringByAppendingPathComponent:DATABASE_NAME];    sqlite3_open([path UTF8String], &database);    return database;}+ (void)closeSqlite:(sqlite3 *)sqlite{    sqlite3_close(sqlite);}+ (NSString *)createSql:(NSString *)tableName params:(NSArray *)params{        NSMutableString *sql = [[[NSMutableString alloc] init] autorelease];    [sql appendFormat:@"create table if not exists %@ (id integer primary key autoincrement,", tableName];        for (NSString *val in params) {        [sql appendFormat:@" %@ text,", val];    }        [self deleteStringLastCode:sql];    [sql appendString:@")"];    return sql;}+ (NSString *)insertSql:(NSString *)tableName params:(NSDictionary *)params{    NSMutableString *sql = [[[NSMutableString alloc] init] autorelease];    [sql appendFormat:@"insert into %@ (", tableName];        for (NSString *val in [params allKeys]) {        [sql appendFormat:@" %@,", val];    }        [self deleteStringLastCode:sql];    [sql appendString:@") values ("];        for (NSString *val in [params allKeys]) {        [sql appendFormat:@"'%@',", [params objectForKey:val]];    }        [self deleteStringLastCode:sql];    [sql appendString:@")"];    return sql;}+ (NSString *)fetchSql:(NSString *)tableName params:(NSDictionary *)params{    NSMutableString *sql = [[[NSMutableString alloc] init] autorelease];    [sql appendFormat:@"select * from %@ ", tableName];        if (nil != params && [params count] > 0) {        [sql appendString:@"where "];        for (NSString *key in [params allKeys]) {            [sql appendFormat:@"%@ = %@,", key, [params objectForKey:key]];        }        [self deleteStringLastCode:sql];    }    return sql;}+ (NSString *)deleteSql:(NSString *)tableName params:(NSDictionary *)params{    NSMutableString *sql = [[[NSMutableString alloc] init] autorelease];    [sql appendFormat:@"delete from %@ ", tableName];        if (nil != params && [params count] > 0) {        [sql appendString:@"where "];        for (NSString *key in [params allKeys]) {            [sql appendFormat:@"%@ = %@,", key, [params objectForKey:key]];        }        [self deleteStringLastCode:sql];    }    return sql;}+ (NSString *)stringFromChar:(const char*)val{    if (val != NULL) {        return [NSString stringWithUTF8String:val];    }    return nil;}+ (void)deleteStringLastCode:(NSMutableString *)val{    NSRange range = NSMakeRange([val length] - 1, 1);    [val deleteCharactersInRange: range];}@end
用法

#define TABLE_NAME      @"book"

#define TABLE_COLUMN    @[@"bookId", @"thumb", @"author", @"publish", @"price", @"bookName", @"brief"]

NSString *createSql = [SqliteManager createSql:TABLE_NAME params:TABLE_COLUMN];//获取创建数据库sql



0 0
原创粉丝点击