Skip to content
/ GEDB Public

OC 下 SQLite的建表和增刪改查的面向對象的封裝

Notifications You must be signed in to change notification settings

godera/GEDB

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 

Repository files navigation

GEDB

/** *@brief SQLite的建表和增刪改查的面向對象的封裝;實體的屬性只能是 NSString、NSNumber、NSData 三種類型 *@undone 事務操作尚未加上,批量增刪改耗時較多 */ @interface GEDB : NSObject

/** *@brief 通過實體類來建表,表名包含實體類名,表單會默認建一個_id,其他字段都是以屬性名來命名 *@param entityClass-實體類 *@return 操作成功與否 */ +(BOOL)createTableIfNotExistsViaEntityClass:(Class)entityClass;

/** *@brief 插入一個實體 *@param entity-要插入的實體,含有結果值的實體,設置用 *@return 操作成功與否 */

  • (BOOL)insert:(id)entity;

/** *@brief 刪除符合條件的實體 *@param whereEntity-要刪除的實體,條件實體,查詢用 *@return 操作成功與否 */

  • (BOOL)deleteWhere:(id)whereEntity;

/** *@brief 改變表中的實體 *@param whereEntity-條件實體,查詢用

  •   setEntity-含有結果值的實體,設置用
    

*@return 操作成功與否 */

  • (BOOL)updateWhere:(id)whereEntity set:(id)setEntity;

/** *@brief 查詢符合條件的實體 *@param whereEntity-條件實體,查詢用 *@return 查詢回來的實體數組,數組項跟whereEntity一個Class */

  • (NSArray*)selectWhere:(id)whereEntity;

@end

用法示例:

[GEDB createTableIfNotExistsViaEntityClass:[SQLEntity class]];
NSLog(@"original db:%@",[GEDB selectWhere:[SQLEntity new]]);

SQLEntity* insertEntity = [SQLEntity new];
insertEntity.name = @"teacher1";
insertEntity.age = @100;
insertEntity.ID = @1;
[GEDB insert:insertEntity];
SQLEntity* insertEntity2= [SQLEntity new];
insertEntity2.name = @"student1";
insertEntity2.ID = @2;
[GEDB insert:insertEntity2];
NSLog(@"db after insertion:%@",[GEDB selectWhere:[SQLEntity new]]);


SQLEntity* whereEntity = [SQLEntity new];
whereEntity.name = @"teacher1";
SQLEntity* setEntity = [SQLEntity new];
setEntity.name = @"Li Jingcheng";
setEntity.age = @28;
[GEDB updateWhere:whereEntity set:setEntity];
NSLog(@"db after updating:%@",[GEDB selectWhere:[SQLEntity new]]);

SQLEntity* whereEntityDel = [SQLEntity new];
whereEntityDel.ID = @2;
[GEDB deleteWhere:whereEntityDel];
NSLog(@"db after deletion:%@",[GEDB selectWhere:[SQLEntity new]]);

SQLEntity* whereEntitySel= [SQLEntity new];
whereEntitySel.name = @"Li Jingcheng";
NSLog(@"info about 'Li Jingcheng':%@",[GEDB selectWhere:whereEntitySel]);

About

OC 下 SQLite的建表和增刪改查的面向對象的封裝

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published