美文网首页iOS进阶之路
iOS FMDB增删改查

iOS FMDB增删改查

作者: UIImage | 来源:发表于2017-06-28 10:13 被阅读85次

FMDB是一款简洁、易用的封装库,下面简单介绍下FMDB的使用:

在FMDB下载文件后,导入工程中,并使用 libsqlite3.dylib 依赖包。
FMDB常用类:

FMDatabase : 一个单一的SQLite数据库,用于执行SQL语句。
FMResultSet :执行查询一个FMDatabase结果集。 
FMDatabaseQueue :在多个线程来执行查询和更新时会使用这个类。

创建数据库:

db = [FMDatabase databaseWithPath:database_path];

1、当数据库文件不存在时,fmdb会自己创建一个。
2、 如果你传入的参数是空串:@"" ,则fmdb会在临时文件目录下创建这个数据库,数据库断开连接时,数据库文件被删除。
3、如果你传入的参数是 NULL,则它会建立一个在内存中的数据库,数据库断开连接时,数据库文件被删除。

打开数据库:

[db open]

返回BOOL型

关闭数据库:

[db close]

下面就是一个简单的栗子,代码如下:

首先导入头文件

#import "FMDatabase.h"
//定义静态变量LoadData对象
static LoadData *ld;
//分享单例对象
+ (instancetype)shareLoadData
{
    if (!ld) {
        ld = [[LoadData alloc]init];
    }
    return ld;
}

创建数据库

    //获取文稿路径
    NSArray *arr = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    //拼接数据库路径
    NSString *path = [[arr lastObject] stringByAppendingPathComponent:@"fmdb.db"];
    //创建数据库
    db = [FMDatabase databaseWithPath:path];
    NSLog(@"创建数据库成功!");

创建表

if ([db open]) {
        //创建sql语句
        NSString *sql = @"create table if not exists book(id integer primary key autoincrement,name text,publish text,price real)";
        //创建表
        if ([db executeUpdate:sql]) {
            NSLog(@"创建表成功!");
        }else{
            NSLog(@"创建表失败!");
        }
    }else{
        NSLog(@"打开数据库失败!");
    }
    //关闭数据库
    [db close];

添加数据

if ([db open]) {
        //创建sql语句
        NSString *sql = [NSString stringWithFormat:@"insert into book(name,publish,price) values('%@','%@','%f')",bk.name,bk.publish,bk.price];
        //添加数据
        if ([db executeUpdate:sql]) {
            NSLog(@"添加成功!");
        }else{
            NSLog(@"添加失败!");
        }
    }else{
        NSLog(@"打开数据库失败!");
    }
    //关闭数据库
    [db close];

删除数据

if ([db open]) {
        //创建sql语句
        NSString *sql = [NSString stringWithFormat:@"delete from book where id = '%d'",bk.idNum];
        //删除
        if ([db executeUpdate:sql]) {
            NSLog(@"删除成功!");
        }else{
            NSLog(@"删除失败!");
        }
    }else{
        NSLog(@"打开数据库失败!");
    }
    //关闭数据库
    [db close];

查询数据

//创建数组
    NSMutableArray *mArr = [NSMutableArray array];
    if ([db open]) {
        //创建sql语句
        NSString *sql = @"select * from book";
        //执行查询
        FMResultSet *set = [db executeQuery:sql];
        while ([set next]) {
            //创建对象
            Book *bk = [[Book alloc]init];
            bk.idNum = [set intForColumn:@"id"];
            bk.name = [set stringForColumn:@"name"];
            bk.publish = [set stringForColumn:@"publish"];
            bk.price = [set doubleForColumn:@"price"];
            //加入数组
            [mArr addObject:bk];
        }
    }else{
        NSLog(@"打开数据库失败!");
    }
    //关闭数据库
    [db close];
    return mArr;

修改数据

if ([db open]) {
        //创建sql语句
        NSString *sql = [NSString stringWithFormat:@"UPDATE book set name = '%@', publish = '%@', price = '%f' where id = '%d'",bk.name,bk.publish,bk.price,bk.idNum];
        //修改图书
        if ([db executeUpdate:sql]) {
            NSLog(@"修改图书成功!");
        }else{
            NSLog(@"修改图书失败!");
        }
    }else{
        NSLog(@"打开数据库失败!");
    }
    //关闭数据库
    [db close];

以上就是FMDB的增删改查,喜欢就点个赞呗!!

相关文章

  • iOS编程中FMDB 使用方法

    一.什么是FMDB? 1.FMDB存在的意义 iOS中使用C语言函数对原生SQLite数据库进行增删改查操作,复杂...

  • iOS FMDB增删改查

    FMDB是一款简洁、易用的封装库,下面简单介绍下FMDB的使用: 在FMDB下载文件后,导入工程中,并使用 lib...

  • iOS FMDB

    iOS FMDB 数据库创建、增、删、改、查。 创建对象 创建表 integer,text:类型 primary ...

  • iOS数据库FMDB

    iOS数据库FMDB 简介 iOS中使用C语言函数对原生SQLite数据库进行增删改查操作,复杂麻烦,于是,就出现...

  • FMDB增删改查

    DEMO

  • FMDB增删改查

    开数据库 从数据库删除表格数据 在searchBar上查询数据库信息 读取数据库信息 愿编程让这个世界更美好

  • 数据库

    数据库常用操作介绍增删改查 FMDB FMDB简单介绍 、FMDB使用 需求:判断一个table是存在 判断一个t...

  • iOS FMDB增删改查(最简便)

    用cocoaPods配置第三方文件 第一步。打开终端 第二步。cd+文件夹 第三步。pod init 第四步。打开...

  • iOS FMDB的增删改查操作

    最近项目中用到本地数据库存储数据,将具体的实现记录一下。 1.数据库的创建,创建了一个单例文件。.h文件代码如下。...

  • FMDB-使用

    FMDB 增删改查 FMDB 优点:[1] 使用起来更加面向对象,省去了很多麻烦、冗余的C语言代码[2] 对比苹果...

网友评论

    本文标题:iOS FMDB增删改查

    本文链接:https://www.haomeiwen.com/subject/ndxycxtx.html