对FMDB的进一步封装--不会sql也能用sqlite

来源:互联网 发布:程序员表白神器 编辑:程序博客网 时间:2024/05/20 13:18

这个封装的主要目的是省去了对sql的学习,可以直接将字典数据(NSDictionary or NSMutableDictionary)转换为一个数据库表

简单得通过字典数据 or 数组数据 来进行数据库操作-增删改查


函数中用到的字典的key均对应数据库的字段值,valued对应字段值

具体的实现文件可以在我的资源中下载《FMDB的进一步封装-最新》


注: .m文件中有个头和方法,可以根据实际应用场景自行调整,这个方法是返回数据库存储地址的,包中没有包含

#import "IIBConfigFileHandler.h"NSString *getDataBaseFilePath(NSString *dbname){        NSString *filePath = [[IIBConfigFileHandler defaultHanlder] getHandlerRootPath];        return [filePath stringByAppendingPathComponent:dbname];}


接口方法:

/***** 函数中用到的字典的key均对应数据库的字段值,valued对应字段值 *****/#import <Foundation/Foundation.h>@interface MDataset : NSObject/** *直接从一个字典数据类型中生成一个数据库表,当然你是用的字典数据的key一定要是完备的 * *@paramdbname *@paramtablename *@paramdata_dictionary随意的一个完备key值的数据字典 * *@return  */BOOL creatTableFromDictionary(NSString *dbname, NSString *tablename,NSDictionary *data_dictionary);/** *直接执行sql检索 * *@paramdbname *@paramsql *@paramresults返回结果 */void execQuery(NSString *dbname, NSString *sql ,NSMutableArray **results);/** *检索方法 * *@paramdbname *@paramtablename *@paramcolumn_list如果为nil 则返回所有字段 *@paramcondition_map nil表示无额外条件 *@paramresults返回结果 */void executeQuery(NSString *dbname, NSString *tablename,NSArray *column_list,NSDictionary *condition_map, NSMutableArray **results); /**  *直接执行sql语句更新  *  *@paramdbname  *@paramsql  *  *@return  */BOOL execUpdate(NSString *dbname, NSString *sql);/** *更新方法 * *@paramdbname *@paramtablename *@paramvalue_map 更新的字段字典,字典的key为字段名,value为字段值 *@paramcondition_map 条件字典 * *@return */BOOL executeUpdate(NSString *dbname,NSString *tablename,NSDictionary *value_map,NSDictionary *condition_map);/** *批量更新方法-单独拿出来为了避免频繁的开关数据库流 * *@paramdbname *@paramtablename *@paramvalue_maps数据的为一个元素为一个字典 *@paramcondition_map * *@return */BOOL executeUpdates(NSString *dbname,NSString *tablename,NSArray *value_maps,NSDictionary *condition_map);/** *插入方法 * *@paramdbname *@paramtablename *@paramvalue_map 插入数据字典 * *@return */BOOL executeInsert(NSString *dbname,NSString *tablename,NSDictionary *value_map);/** *批量插入方法 * *@paramdbname *@paramtablenam *@paramvalue_maps * *@return */BOOL executeInserts(NSString *dbname,NSString *tablename,NSArray *value_maps);/** *删除方法 * *@paramdbname *@paramtablename *@paramcondition_map 条件字典 * *@return */BOOL executeDelete(NSString *dbname,NSString *tablename,NSDictionary *condition_map);@end


原创粉丝点击