/**
* 对 sqlite 的使用进行简单封装,仅涉及简单的单表 增删改查
*
* 基于 FMDB
*
* 操作基于 model ,数据库表字段与 model 属性一一对应,对 model 整体进行操作
*
* 根据 model 对象自动建表,字段类型只支持 NSString , NSIteger , float
*
* 用到 runtime 运行时获取 model 属性
*
*/
1 // 2 // AGDatabaseManager.h 3 // 4 // Created by Ager on 15/11/10. 5 // Copyright © 2015年 Ager. All rights reserved. 6 // 7 8 9 /** 10 * 对 sqlite 的使用进行简单封装,仅涉及简单的单表 增删改查 11 * 12 * 基于 FMDB 13 * 14 * 操作基于 model ,数据库表字段与 model 属性一一对应,对 model 整体进行操作 15 * 16 * 根据 model 对象自动建表,字段类型只支持 NSString , NSIteger , float 17 * 18 * 用到 runtime 运行时获取 model 属性 19 * 20 */ 21 22 #import <Foundation/Foundation.h> 23 24 @interface AGDatabaseManager : NSObject 25 26 + (AGDatabaseManager*)shareAGDatabaseManager; 27 28 /** 29 * 创建表格 30 * 31 * @param cls model 类 32 * @param tbName 表名 33 * @param keyName 主键字段 34 * @param key 主键的属性设置 35 * 36 * @return 创建表格是否成功 37 */ 38 - (BOOL)creatTable:(Class)cls tableName:(NSString*)tbName keyName:(NSString*)keyName primaryKey:(NSString*) key; 39 40 41 /** 42 * 向表格插入数据 43 * 44 * @param model 数据模型与数据库表格对应 45 * @param tbName 要操作的表名 46 * 47 * @return 添加是否成功 48 */ 49 - (BOOL)insert:(id)model tableName:(NSString*)tbName; 50 51 52 /** 53 * 更新数据 54 * 55 * @param tbName 要操作的表名 56 * @param model 数据模型与数据库表格对应 57 * @param str 更新操作查要更新的数据的条件 58 * 59 * @return 更新是否成功 60 */ 61 - (BOOL)update:(id)model tableName:(NSString*)tbName where:(NSString*)str; 62 63 64 /** 65 * 删除数据 66 * 67 * @param tbName 要删除数据的表名 68 * @param str 要删除的数据的查找条件 69 * 70 * @return 删除是否成功 71 */ 72 - (BOOL)deleteTableName:(NSString*)tbName where:(NSString*)str; 73 74 75 /** 76 * 查询数据 77 * 78 * @param model 数据模型与数据库表格对应 79 * @param tbName 要操作的表名 80 * @param str 删除操作查要删除的数据的条件 81 * 82 * @return 查询结果 (数组每一项为字典) 83 */ 84 - (NSArray*)select:(Class)model tableName:(NSString*)tbName where:(NSString*)str; 85 86 87 /** 88 * 查询全部数据 89 * 90 * @param model 数据模型与数据库表格对应 91 * @param tbName 要操作的表名 92 * 93 * @return 查询结果 (数组每一项为字典) 94 */ 95 - (NSArray*)selectALL:(Class)model tableName:(NSString*)tbName; 96 97 98 99 100 @end