本類是對(duì)FMDB的深度封裝,不需要去主動(dòng)創(chuàng)建表刪除表,使用簡(jiǎn)單方便
使用的時(shí)候創(chuàng)建的Model只要繼承于本類中的XMDBModel 類 就可以進(jìn)行所有的增刪查改功能
/** SQLite五種數(shù)據(jù)類型 */
#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;
/** 數(shù)據(jù)庫(kù)中是否存在表 */
+ (BOOL)isExistInTable;
/** 表中的字段*/
+ (NSArray *)getColumns;
/** 保存或更新
* 如果不存在主鍵,保存,
* 有主鍵,則更新
*/
- (BOOL)saveOrUpdate;
/** 保存單個(gè)數(shù)據(jù) */
- (BOOL)save;
/** 批量保存數(shù)據(jù) */
+ (BOOL)saveObjects:(NSArray *)array;
/** 更新單個(gè)數(shù)據(jù) */
- (BOOL)update;
/** 批量更新數(shù)據(jù)*/
+ (BOOL)updateObjects:(NSArray *)array;
/** 刪除單個(gè)數(shù)據(jù) */
- (BOOL)deleteObject;
/** 批量刪除數(shù)據(jù) */
+ (BOOL)deleteObjects:(NSArray *)array;
/** 通過(guò)條件刪除數(shù)據(jù) */
+ (BOOL)deleteObjectsByCriteria:(NSString *)criteria;
/** 清空表 */
+ (BOOL)clearTable;
/** 查詢?nèi)繑?shù)據(jù) */
+ (NSArray *)findAll;
/** 通過(guò)主鍵查詢 */
+ (instancetype)findByPK:(int)inPk;
/** 查找某條數(shù)據(jù) */
+ (instancetype)findFirstByCriteria:(NSString *)criteria;
/** 通過(guò)條件查找數(shù)據(jù)
* 這樣可以進(jìn)行分頁(yè)查詢 @" WHERE pk > 5 limit 10"
*/
+ (NSArray *)findByCriteria:(NSString *)criteria;
#pragma mark - must be override method
/**
* 創(chuàng)建表
* 如果已經(jīng)創(chuàng)建,返回YES
*/
+ (BOOL)createTable;
/** 如果子類中有一些property不需要?jiǎng)?chuàng)建數(shù)據(jù)庫(kù)字段,那么這個(gè)方法必須在子類中重寫(xiě)*/
+ (NSArray *)transients;
/**
*數(shù)據(jù)庫(kù)中的數(shù)據(jù)條數(shù)
*/
+ (int)numOfMessages;
關(guān)于本類使用方法 請(qǐng)移步github中下載Demo 有詳細(xì)的使用介紹