ios——FMDB的简单使用

FMDB主要是用于本地存储,将信息存储在本地,适合多数据存储,其优点在此并不过多的介绍,直接进入主题,用简单的代码,使用FMDB。

一、第一步

#import <FMDB.h>

@interface ViewController (){
    FMDatabase *_dataBase;
}

FMDB的框架可以直接通过cocoapods导入。


二、开始使用FMDB了,先创建本地的数据库

- (void)viewDidLoad {
    
    NSString *dbPath = [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject] stringByAppendingPathComponent:@"task.sqlite"];

    _dataBase = [FMDatabase databaseWithPath:dbPath];

    if (_dataBase.open) {
        // 创建表
        NSString *sql = @"CREATE TABLE IF NOT EXISTS task (task_id INTEGER PRIMARY KEY AUTOINCREMENT,taskName TEXT,contactName TEXT,taskContent TEXT,taskDate TEXT)";
        BOOL success = [_dataBase executeUpdate:sql];
        if (success) {
            NSLog(@"创建表成功");
        }else {
            NSLog(@"创建表失败");
            NSLog(@"%@",[_dataBase lastErrorMessage]);
        }
        
    }else {
        NSLog(@"创建数据库失败");
    }

    [super viewDidLoad];
}

我们要存储在本地的数据是放在数据库里面的,所以要懂一点sql语法才行,要存储的数据,在数据库中的字段、类型和数据库的名字一定要合法。如果你所需要存储的内容不多,可以直接将上面代码中sql语句改一下,用自己的字段替换就好。


三、本地数据库创建好之后,就可以操作数据了

1、添加

#pragma -mark 保存至本地
-(void)saveTask {
    
    BOOL success = [_dataBase executeUpdate:@"INSERT INTO task (taskName,contactName, taskContent,taskDate) VALUES (?,?,?,?)",self.taskName.text,self.contactField.text,self.taskContent.text,[self resquestTime]];
    if (success) {
        NSLog(@"插入成功");
    }else {
        NSLog(@"插入失败 %@",[_dataBase lastErrorMessage]);
    }
}

2、更新

-(void)updataTask {
    NSString *updateSql = [NSString stringWithFormat:
                           @"UPDATE task SET taskName = '%@',contactName = '%@', taskContent = '%@' WHERE task_id = '%@'",self.taskName.text,self.contactField.text,self.taskContent.text,task_idSTR
                           ];
    
    BOOL success = [_dataBase executeUpdate:updateSql];
    if (success) {
        NSLog(@"插入成功");
    }else {
        NSLog(@"插入失败 %@",[_dataBase lastErrorMessage]);
    }
}

3、删除

NSString *sql = [NSString stringWithFormat:@"DELETE FROM task WHERE task_id = %d",[task_idSTR intValue]];
        BOOL success = [_dataBase executeStatements:sql];
        if (success) {
            NSLog(@"成功");
        }else {
            NSLog(@"失败 %@",[_dataBase lastErrorMessage]);
        }

4、查

-(void)loadData {
    
    NSString *sql = [NSString stringWithFormat:@"SELECT * FROM task WHERE task_id = %@",task_idSTR];
        FMResultSet *resultSet = [_dataBase executeQuery:sql];
        while ([resultSet next]) {
    
            NSString *str = [resultSet stringForColumn:@"taskName"];
            
            NSString *str1 = [resultSet stringForColumn:@"taskContent"];
            
            NSString *str2 = [resultSet stringForColumn:@"contactName"];
//根据本地数据查询key对应的value值


    }
}

FMDB还提供了很多查询的方法:

* intForColumn:
* longForColumn:
* longLongIntForColumn:
* boolForColumn:
* doubleForColumn:
* stringForColumn:
* dateForColumn:
* dataForColumn:
* dataNoCopyForColumn:
* UTF8StringForColumn:
* objectForColumn:


最后关闭本地数据库:

- (void)dealloc {
    [_dataBase close];
}

总之,FMDB用起来感觉和写sql差不多,只要掌握几个固定语法,剩下的都是sql语句了~


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值