首页 热点专区 小学知识 中学知识 出国留学 考研考公
您的当前位置:首页正文

XMDBModel,FMDB的深度封装

2024-12-13 来源:要发发知识网

本类是对FMDB的深度封装,不需要去主动创建表删除表,使用简单方便

使用的时候创建的Model只要继承于本类中的XMDBModel 类 就可以进行所有的增删查改功能


/** SQLite五种数据类型 */

#define SQLTEXT    @"TEXT"

#define SQLINTEGER  @"INTEGER"

#define SQLREAL    @"REAL"

#define SQLBLOB    @"BLOB"

#define SQLNULL    @"NULL"

#define PrimaryKey  @"primary key"

#define primaryId  @"pk"

@interface XMDBModel : NSObject

/** 主键 id */

@property (nonatomic, assign)  int  pk;

/** 列名 */

@property (retain, readonly, nonatomic) NSMutableArray        *columeNames;

/** 列类型 */

@property (retain, readonly, nonatomic) NSMutableArray        *columeTypes;

/**

*  获取该类的所有属性

*/

+ (NSDictionary *)getPropertys;

/** 获取所有属性,包括主键 */

+ (NSDictionary *)getAllProperties;

/** 数据库中是否存在表 */

+ (BOOL)isExistInTable;

/** 表中的字段*/

+ (NSArray *)getColumns;

/** 保存或更新

* 如果不存在主键,保存,

* 有主键,则更新

*/

- (BOOL)saveOrUpdate;

/** 保存单个数据 */

- (BOOL)save;

/** 批量保存数据 */

+ (BOOL)saveObjects:(NSArray *)array;

/** 更新单个数据 */

- (BOOL)update;

/** 批量更新数据*/

+ (BOOL)updateObjects:(NSArray *)array;

/** 删除单个数据 */

- (BOOL)deleteObject;

/** 批量删除数据 */

+ (BOOL)deleteObjects:(NSArray *)array;

/** 通过条件删除数据 */

+ (BOOL)deleteObjectsByCriteria:(NSString *)criteria;

/** 清空表 */

+ (BOOL)clearTable;

/** 查询全部数据 */

+ (NSArray *)findAll;

/** 通过主键查询 */

+ (instancetype)findByPK:(int)inPk;

/** 查找某条数据 */

+ (instancetype)findFirstByCriteria:(NSString *)criteria;

/** 通过条件查找数据

* 这样可以进行分页查询 @" WHERE pk > 5 limit 10"

*/

+ (NSArray *)findByCriteria:(NSString *)criteria;

#pragma mark - must be override method

/**

* 创建表

* 如果已经创建,返回YES

*/

+ (BOOL)createTable;

/** 如果子类中有一些property不需要创建数据库字段,那么这个方法必须在子类中重写*/

+ (NSArray *)transients;

/**

*数据库中的数据条数

*/

+ (int)numOfMessages;

关于本类使用方法 请移步github中下载Demo 有详细的使用介绍

显示全文