LKDBHelper-ORM框架
2015-06-03 21:39
274 查看
在IOS中 存储数据的sqlite框架有FMDB,其主要的实现还是SQL 语句。而LKDBHelper是构建在该框架上的一个 ORM框架实现对象数据映射。其框架库在github上能找到。以下代码将通过LKDBHelper实现增删查改。
1 实现数据对应的Bean对象,以下提供.h文件。
2 提供实现的Dao层。
WBUserDao.h
WBUserDao.m
3 以下代码显示如何调用。我们在ViewDidLoad中实现
Tip:在增删查改中,LKDBhelper实现的方式还有很多很多。具体看需求。gitHub:点击打开链接
1 实现数据对应的Bean对象,以下提供.h文件。
#import <Foundation/Foundation.h> @interface WBUser : NSObject @property (nonatomic,copy) NSString *userName; @property (nonatomic,assign) int age; @end
2 提供实现的Dao层。
WBUserDao.h
#import <Foundation/Foundation.h> #import "WBUser.h" @interface WBUserDao : NSObject +(instancetype)daoWithEntityClass:(Class)aclass; -(void)saveUser:(WBUser *)user; -(WBUser *)loadUserWithWherecase:(NSString *)where; -(BOOL)updateUserWithWherecase:(NSString *)where; -(void)deleteWithWherecase:(NSString *)where; @end
WBUserDao.m
#import "WBUserDao.h" #import "LKDBHelper.h" @interface WBUserDao () @property (nonatomic,strong) Class entityClass; @property (nonatomic,strong) LKDBHelper *gobalHelper; @end @implementation WBUserDao +(instancetype)daoWithEntityClass:(Class)aclass { WBUserDao *dao=[[[self class] alloc] initWithEntityClass:aclass]; return dao; } -(instancetype)initWithEntityClass:(Class)aclass { if (self=[super init]) { _entityClass=aclass; _gobalHelper=[LKDBHelper getUsingLKDBHelper]; [_gobalHelper createTableWithModelClass:[_entityClass class]]; } return self; } -(void)saveUser:(WBUser *)user { NSLog(@"%d",[_gobalHelper insertToDB:user]); } -(WBUser *)loadUserWithWherecase:(NSString *)where { return [_gobalHelper searchSingle:[WBUser class] where:where orderBy:nil]; } -(BOOL)updateUserWithWherecase:(NSString *)where { return [_gobalHelper updateToDB:[WBUser class] set:@"age = 15 " where:where]; } -(void)deleteWithWherecase:(NSString *)where { [_gobalHelper deleteWithClass:[WBUser class] where:where callback:^(BOOL result) { NSLog(@"delete result :%d",result); }]; } @end
3 以下代码显示如何调用。我们在ViewDidLoad中实现
- (void)viewDidLoad { [super viewDidLoad]; WBUser *user=[[WBUser alloc] init]; user.userName=@"awdawda"; user.age=18; WBUserDao *dao=[WBUserDao daoWithEntityClass:[user class]]; [dao saveUser:user]; WBUser *userData=[dao loadUserWithWherecase:@"userName='awdawda'"]; BOOL updateFlag=[dao updateUserWithWherecase:@"userName='awdawda'"]; WBUser *userData2=[dao loadUserWithWherecase:@"userName='awdawda'"]; NSLog(@"%d %d",updateFlag,userData2.age); [dao deleteWithWherecase:@"userName='awdawda'"]; }
Tip:在增删查改中,LKDBhelper实现的方式还有很多很多。具体看需求。gitHub:点击打开链接
相关文章推荐
- sgu 194 上下界网络流可行流判定+输出可行流
- Singleton单例模式--C++实现
- 4-6
- 【转】android开源项目---项目篇
- Dynamics CRM 2015Online Update1 new feature之 通过业务规则清空字段的值
- 4-4
- Dynamics CRM 2015Online Update1 new feature之 通过业务规则清空字段的值
- Dynamics CRM 2015Online Update1 new feature之 通过业务规则清空字段的值
- Dynamics CRM 2015Online Update1 new feature之 通过业务规则清空字段的值
- 网络知识note
- 第十一周项目-2.1
- PRML笔记 第一章 Introduction
- BootStrap 模态框禁用空白处点击关闭
- 4-5
- android开源项目---tool篇
- java连接MongoDB查询导出为excel表格
- Java memcache Client 数据操作源码剖析
- 4-3
- tar备份工具 Linux
- 【矩阵乘法】【codevs 1250】Fibonacci数列