FMDB基本使用

#import "PersonDBTool.h"
#import <FMDB.h>

@implementation PersonDBTool


static FMDatabase *_dataBase;

+ (void)initialize{
    //1.创建数据,并且打开/连接到沙盒中的数据库
    NSString *documentPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];
    
    NSString *filePath = [documentPath stringByAppendingPathComponent:@"person.db"];
    
    _dataBase = [FMDatabase databaseWithPath:filePath];
    
    //2.打开
    BOOL result = [_dataBase open];
    

    if(result){
        //3.创建表
        BOOL createTableResult = [_dataBase executeUpdate:@"create table if not exists t_person(id integer primary key,name text,age integer);"];
        
        if(createTableResult){
            NSLog(@"create Table ok!!!");
        }else{
            NSLog(@"error!!!");
        }
    }
}

#pragma mark - FMDB DML语句
+ (void)insertPerson:(Person *)person{
    [_dataBase executeUpdateWithFormat:@"insert into t_person(name,age) values(%@,%d) ;",person.name,person.age];
}

+ (void)updatePerson:(Person *)person{
    [_dataBase executeUpdateWithFormat:@"update t_person set age = %d where name = %@",person.age,person.name];
}

+ (void)deletePersonWithId:(int)personId{
    [_dataBase executeUpdateWithFormat:@"delete from t_person where id = %d",personId];
}

#pragma mark - DQL语句
+ (NSArray *)queryAllPerson{
    NSMutableArray *persons = [NSMutableArray array];
    
    FMResultSet *resultSet = [_dataBase executeQuery:@"select * from t_person"];
    
    while ([resultSet next]) {//遍历到每一条记录
        NSString *pname = [resultSet stringForColumn:@"name"];
        int age = [resultSet intForColumn:@"age"];
        
        Person *p = [[Person alloc] init];
        p.name = pname;
        p.age = age;
        
        [persons addObject:p];
    }
    
    return persons.copy;
}

+ (NSArray *)queryPersonWithKeyWord:(NSString *)keyWord{
    NSMutableArray *persons = [NSMutableArray array];

    FMResultSet *resultSet = [_dataBase executeQuery:[NSString stringWithFormat:@"select * from t_person where name like '%%%@%%';",keyWord]];
    
    while ([resultSet next]) {//遍历到每一条记录
        NSString *pname = [resultSet stringForColumn:@"name"];
        int age = [resultSet intForColumn:@"age"];
        
        Person *p = [[Person alloc] init];
        p.name = pname;
        p.age = age;
        
        [persons addObject:p];
    }
    
    return persons.copy;
}

@end

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值