FMDB 使用demo

需要适当修改 仅供参考
导入第三方 FMDB
.h 文件

注意 最好表名用自己model的名字

#import <Foundation/Foundation.h>
#import "自己写的model  数据"
NS_ASSUME_NONNULL_BEGIN

@interface SqlData : NSObject
//单利方法
+(instancetype)initData;
//初始化数据库
-(void)initSql;
//初始化表格
-(void)initTable;
//添加数据
-(void)addData:(id)data;
//删除数据
-(void)deleteData:(NSInteger )theid;
//查询数据
-(id)getDataArray;
//关闭数据库
-(void)closeSql;

@end

NS_ASSUME_NONNULL_END

.m 文件 数据库使用的具体方法

#import "SqlData.h"
#import "FMDB.h"   //   FMDB三方头文件

static SqlData *sql;
static FMDatabase *db;

@implementation SqlData
//单利方法

+ (instancetype)initData{
    if (!sql) {
        sql = [[SqlData alloc]init];
    }
    return sql;
}
//初始化数据库

- (void)initSql{
    //创建路径
    NSString *str = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)firstObject];
    //拼接路径
    NSString *file = [str stringByAppendingString:@"movies.db"];
    //创建数据库
    db = [[FMDatabase alloc]initWithPath:file];
    if ([db open]) {
        NSLog(@"数据库打开");
        [self initTable];
    }else{
        NSLog(@"数据库打开失败");
    }
}

- (void)initTable{
    //初始化数据库表格的格式:create table if not exists 表名(主键id integer primary key,所有的数据类型);
    //创建表格
    [db executeUpdate:@"create table if not exists DataModel(classid integer primary key,title text,url text)"];
    //关闭数据库
    [db close];
}

- (void)addData:(DataModel *)Model{
    //添加数据库
    //添加数据的sql语句:insert into 表名 values(null,?,?);
    //先判断是否打开
    if ([db open]) {
        [db executeUpdate:[NSString stringWithFormat:@"insert into DataModel values(null,'%@','%@')",Model.title,Model.url]];
        NSLog(@"插入成功");
        NSLog(@"model ------------- %@",Model);
    }else{
        NSLog(@"打开失败");
    }
    [db close];
}
//删除
- (void)deleteData:(NSInteger)theid{
    //sql 语句: delete from 表名 where 表名的主键id = ?
    if ([db open]) {
        
        [db executeUpdate:[NSString stringWithFormat:@"delete from DataModel where classid = '%ld'",theid]];
        NSLog(@"删除成功");
    }else{
        NSLog(@"删除数据失败");
    }
    //关闭数据库
    [db close];
}
//查询
- (NSArray *)getDataArray{
    //创建数据
    NSMutableArray *array = [NSMutableArray new];
    //集合
    FMResultSet *Set = [FMResultSet new];
    
    if ([db open]) {
        //sql 语句格式:select *from 表名
        Set = [db executeQuery:@"select * from DataModel"];
        //判断有没有东西
        while ([Set next]) {
            DataModel *dataM = [DataModel new];
            dataM.title = [Set stringForColumn:@"title"];
            dataM.url = [Set stringForColumn:@"url"];
            dataM.classid = [Set intForColumn:@"classid"];
            NSLog(@"dataM===============%@",dataM);
            [array addObject:dataM];
            NSLog(@"查询成功");
        }
    }else{
        NSLog(@"查询失败");
    }
    [db close];
    
    return array;
    
}

- (void)closeSql{
    
}
@end

具体使用 方法
在收藏时(插入)

    [[SqliteData initData] initSql];
    [[SqliteData initData] addData:self.URL];
    

查询时 (和上边一起 必) 数据持久化~

//查询
-(void)viewWillAppear:(BOOL)animated{
    [[SqliteData initData] initSql];
    self.dataSource = [[SqliteData initData] getDataArray];
    NSLog(@"self.array---------------------------%@",self.dataSource);
    [self.table reloadData];
}

删除时 使用

//删除
-(void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath{
    TitleModel *M = self.dataSource[indexPath.row];
    [[SqliteData initData] deleteData:M.classid];
    self.dataSource = [[SqliteData initData] getDataArray];
    [self.table reloadData];
}
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值