IOS 利用Model 反射属性 自动 创建表 插入 查询 修改

写字楼里写字间,写字间里程序员;程序人员写程序,又拿程序换酒钱。

酒醒只在网上坐,酒醉还来网下眠;酒醉酒醒日复日,网上网下年复年。

但愿老死电脑间,不愿鞠躬老板前;奔驰宝马贵者趣,公交自行程序员。

别人笑我忒疯癫,我笑自己命太贱;不见满街漂亮妹,哪个归得程序员。


版本小更新很频繁 我把项目 放在了 github 上面

https://github.com/li6185377/LKDaoBase


删除了 无关类 现在就只要 导入  LKDaoBase 和FMDatabase 就好了  

Where 条件可用 NSDictionary 传值 一些细节修改


大部分都是代码  不好看就是了  

 这是 示例代码:

对于每个实体 几乎是 0操作   你不用再一行行 写插入 修改 删除的 代码了  定义完 属性 你就完事。 表也是自动创建的

@interface LKDAOTest : LKDAOBase

@end
@interface LKModelTest : LKModelBase

@property(strong,nonatomic)NSString* name;
@property int age;
@property BOOL isGirl;
@property(strong,nonatomic)NSDate* date;
@property(strong,nonatomic)UIImage* image;
@property(strong,nonatomic)NSData* bytes;
@end
@implementation LKDAOTest
+(Class)getBindingModelClass
{
    return [LKModelTest class];
}
const static NSString* tablename = @"lktable";
+(const NSString *)getTableName
{
    return tablename;
}
@end

@implementation LKModelTest


@end


 [dao clearTableData];//清空表数据
    
    model.name = @"nimei";
    model.age = 16;
    model.isGirl = YES;
    model.date = [NSDate date];
    model.image = [UIImage imageNamed:@"110.png"];
    model.bytes = [@"aaaaaabbbbbbcccccc" dataUsingEncoding:NSUTF8StringEncoding];

    [dao insertToDB:model callback:nil];

    model.name = @"womei";
    [dao insertToDB:model callback:nil];  //可一直 插入
    
    model.name = @"tamei";
    [dao insertToDB:model callback:^(BOOL nono){
        NSLog(@"insert %d",nono);
    }];
    
    NSMutableDictionary* dic = [NSMutableDictionary dictionary];
    [dic setObject:@"tamei" forKey:@"name"];
    [dao searchWhereDic:dic orderBy:nil offset:0 count:15 callback:^(NSArray* array){
        NSLog(@"\n 查询完的数据 \n : %d",array.count);
        for (LKModelTest* model in array) {
            NSLog(@"model{%@}",model);
        }
    }];
    
    NSArray* selectnames =[NSArray arrayWithObjects:@"tamei",@"womei", nil];
    [dic setObject:selectnames forKey:@"name"];
    [dic setObject:@"16" forKey:@"age"];
    [dao searchWhereDic:dic orderBy:nil offset:0 count:15 callback:^(NSArray* array){
        NSLog(@"\n 查询完的数据 \n : %d",array.count);
        for (LKModelTest* model in array) {
            NSLog(@"model{%@}",model);
        }
    }];
    ... 具体使用方法 请看示例.




结果

2012-12-07 17:44:04.682 LKDBTest[8469:c07] insert 1
2012-12-07 17:44:04.739 LKDBTest[8469:c07] 
 查询完的数据 
 : 1
2012-12-07 17:44:04.740 LKDBTest[8469:c07] model{
 name : tamei 
 age : 16 
 isGirl : 1 
 date : 2012-12-07 09:44:04 +0000 
 image : <UIImage: 0x75765a0> 
 bytes : <61616161 61616262 62626262 63636363 6363> }


  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值