FMDB基本使用

在工程中导入"FMDB"

#import <FMDatabase.h>
创建一个类

#import <Foundation/Foundation.h>

NS_ASSUME_NONNULL_BEGIN

@interface DBDCacheTool : NSObject
- (void) set;
@end
#import "DBDCacheTool.h"
#import <FMDatabase.h>
@implementation DBDCacheTool
- (void) set{


}
@end
NS_ASSUME_NONNULL_END

对于数据库的操作,体现的代码与写在终端的命令很相似
这里我把增删改查写在一个set方法里用于测试。

文件存放位置

数据库文件放在沙河路径下,每个app有自己的沙盒路径

  • 获取沙盒路径
NSString *docPath = [[NSString alloc] init];
    docPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];
    NSLog(@"docPath == %@", docPath);
  • 创建数据库文件
NSString *fileName =[docPath stringByAppendingPathComponent:@"movie.sqlite"];
    FMDatabase *fmdb = [FMDatabase databaseWithPath:fileName];
    if ([fmdb open]) {
        NSLog(@"数据库打开成功");
    } else {
        NSLog(@"数据库打开失败");
    }
  • 创建表并且插入数据,
    一行可以有多个数据,这里我只插入了一个name
//创建表
    BOOL executeUpdate = [fmdb executeUpdate:@"CREATE TABLE IF NOT EXISTS t_movie (id integer PRIMARY KEY AUTOINCREMENT, name text NOT NULL);"];
    int mark_movie = 1;
    NSString *name = [NSString stringWithFormat:@"冰雪奇缘%@",@(mark_movie)];
    mark_movie++;
    BOOL results = [fmdb executeUpdate:@"INSERT INTO t_movie (name) VALUES (?)",name];
    if (results) {
        NSLog(@"插入成功");
    } else {
        NSLog(@"插入失败");
    }

注意此时我们的表的名字是 t_movie;

  • 删除表中数据
    这里根据行来删,也就是id
//删除
//    BOOL delete = [fmdb executeUpdate:@"delete from t_movie where id = ?",@(1)];
//    if (delete) {
//        NSLog(@"删除成功");
//    } else {
//        NSLog(@"删除失败");
//    }
  • 修改根据名字来修改
//    修改
    NSString *newName = @"rushBmMyFriends";
    NSString *oldName = @"冰雪奇缘1";
    BOOL update = [fmdb executeUpdate:@"update t_movie set name = ? where name = ?",newName, oldName];
    if(update) {
        NSLog(@"修改成功");
    } else {
        NSLog(@"修改失败");
    }
  • 查询
//查询整个表
    FMResultSet * resultSet = [fmdb executeQuery:@"select * from t_movie"];
    //按条件查询
    //FMResultSet *resultSet = [fmdb executeQuery:@"select * from t_movie where id < ?",@(4)];
    //遍历查询
    while ([resultSet next]) {
        int idNum = [resultSet intForColumn:@"id"];
        NSString *name = [resultSet objectForColumn:@"name"];
        NSLog(@"姓名:%@ 序号:%d", name, idNum);
    }
  • 删除表
//    // 删除表
//    BOOL result = [fmdb executeUpdate:@"drop table if exists t_movie"];
//    if (result) {
//        NSLog(@"删除成功");
//    } else {
//        NSLog(@"删除失败");
//    }
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值