以下是SQLite API进行封装的库FMDB的简单使用 :

FMDB框架的下载地址 :https://github.com/ccgus/fmdb

代码如下 :

//
//  ViewController.m
//  FMDB的使用
//
//  Created by mac1 on 15/10/7.
//  Copyright (c) 2015年 www.iphonetrain.com. All rights reserved.
//

#import "ViewController.h"
#import "FMDB.h"

@interface ViewController ()

//姓名
@property (weak, nonatomic) IBOutlet UITextField *nameTextField;

//年龄
@property (weak, nonatomic) IBOutlet UITextField *ageTextField;

//"插入记录"按钮
- (IBAction)insertAction;

//"更新记录"按钮
- (IBAction)updateAction:(id)sender;

//"查询数据"按钮
- (IBAction)queryAction:(id)sender;

//数据库
@property (nonatomic,strong)FMDatabase *fmdb;

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    
    //1.打开数据库  如果不存在,则会自动创建数据库
    
    //数据库路径
    NSString *fmdbPath = [NSHomeDirectory() stringByAppendingPathComponent:@"Documents/fmdbDatabase.db"];
    NSLog(@"fmdbPath = %@",fmdbPath);
    
    _fmdb = [FMDatabase databaseWithPath:fmdbPath];
    
    BOOL isSuccess = [_fmdb open];
    
    if (isSuccess) {
        NSLog(@"打开或创建数据库成功!");
        
    //2.创建表
    
        /*
         //1.执行查询操作 SELECT
         [db executeQuery:<#(NSString *), ...#>];
         
         //2.执行查询以外的所有操作,INSERT INTO UPDATE DELETE  CREATE
         [db executeUpdate:<#(NSString *), ...#>];
         */
        isSuccess = [_fmdb executeUpdate:@"CREAT TABLE IF NOT EXISTS t_user (id INTEGER NOT NULL PRIMARY KEY,name TEXT, age INTEGER )"];
        if (isSuccess) {
            
            NSLog(@"创建表成功!");
            
        }
    }
}

//插入数据 DML
- (IBAction)insertAction {
    
    //取得插入的数据记录
    NSString *name = _nameTextField.text;
    NSInteger age = [_ageTextField.text integerValue];
    
    //如果一次性需要操作大量的数据,就不要在主线程操作,会阻塞主线程
    //异步往数据库插入数据
    
    NSString *dbfile = [NSHomeDirectory() stringByAppendingPathComponent:@"Documents/aysnfmdb.db"];
    FMDatabaseQueue *queue = [FMDatabaseQueue databaseQueueWithPath:dbfile];
    
    
    //异步方式下 :
    dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
        
        //会自己创建数据库 db
        [queue inDatabase:^(FMDatabase *db) {
            
            BOOL isSuccess =  [db executeUpdate:@"CREATE TABLE IF NOT EXISTS t_user (id integer PRIMARY KEY , name text NOT NULL ,age integer)"];
            
            if (isSuccess) {
                
                NSLog(@"创建表成功");
                
            }
            
            //插入数据
            for (NSInteger i = 0; i < 2000; i++) {
                
                //使用fmdb,sql语句中的字符串不需要写单引号
                BOOL isSuccess = [db executeUpdateWithFormat:@"INSERT INTO t_user(name,age) VALUES (%@,%ld)",name,age];
                if (isSuccess) {
                    NSLog(@"插入数据成功!");
                }
                else
                    NSLog(@"插入数据失败!");
            }
        }];
    });
}

- (IBAction)updateAction:(id)sender {

BOOL issuccess = [_fmdb executeUpdateWithFormat:@"UPDATE t_user SET name = %@ WHERE id = 1",@"大王"];
    if (issuccess) {
        
        NSLog(@"更新数据成功");
    }
    else{
        NSLog(@"更新数据失败");
        
    }

}

- (IBAction)queryAction:(id)sender {
    
    FMResultSet *result = [_fmdb executeQueryWithFormat:@"SELECT * FROM t_user"];
    
    while (result.next) {
        
        // 取出一条数据
        NSString *name = [result stringForColumn:@"name"];
        int age = [result intForColumn:@"age"];
        
        NSLog(@"name = %@  age = %d",name,age);
        
        /*
         
         可以通过下标取数据
        NSString *name = [result stringForColumnIndex:1];
         */
    }
    
}

@end

第三方框架----FMDB的使用的更多相关文章

  1. iOS-数据持久化-第三方框架FMDB的使用

    FMDB简单介绍 一.简单说明 1.什么是FMDB FMDB是iOS平台的SQLite数据库框架 FMDB以OC的方式封装了SQLite的C语言API 2.FMDB的优点 使用起来更加面向对象,省去了 ...

  2. 第三方框架FMDB

    摘要:关键点:创建.插入.查询.数据格式化 第三方框架FMDB -------------------------------------------------------------------- ...

  3. [iOS]数据库第三方框架FMDB详细讲解

    [iOS]数据库第三方框架FMDB详细讲解 初识FMDB iOS中原生的SQLite API在进行数据存储的时候,需要使用C语言中的函数,操作比较麻烦.于是,就出现了一系列将SQLite API进行封 ...

  4. SQLite数据库框架--FMDB简单介绍

    1.什么是FMDB FMDB是iOS平台的SQLite数据库框架 FMDB以OC的方式封装了SQLite的C语言API 2.FMDB的优点 使用起来更加面向对象,省去了很多麻烦.冗余的C语言代码 对比 ...

  5. FMDB第三方框架

    FMDB是同AFN,SDWebImage同样好用的第三方框架,它以OC的方式封装了SQLite的C语言API,使得开发变得简单方便. 附上github链接https://github.com/ccgu ...

  6. 第三方库FMDB的使用

    1.FMDB简介 什么是FMDB FMDB是iOS平台的SQLite数据库框架,FMDB以OC的方式封装了SQLite的C语言API. 为什么使用FMDB 使用起来更加面向对象,省去了很多麻烦.冗余的 ...

  7. iOS开发--SQLite重要框架FMDB的使用

    什么是FMDB: FMDB是一个和iOS的SQLite数据库操作相关的第三方框架.主要把C语言操作数据库的代码用OC进行了封装.使用者只需调用该框架的API就能用来创建并连接数据库,创建表,查询等. ...

  8. iOS技术面试07:第三方框架

    1ios框架分为:cocoa Touch:UIKit.Foundation.附属框架 Media:OpenGL ES.EAGL.Quartz.Core Animation.Core Audio.    ...

  9. iOS-常用的第三方框架的介绍

    写iOS 程序的时候往往需要很多第三方框架的支持,可以大大减少工作量,讲重点放在软件本身的逻辑实现上. GitHub 里面有大量优秀的第三方框架,而且 License 对商业很友好.一下摘录一下几乎每 ...

随机推荐

  1. 并发编程大师系列之:CountDownLatch和Join

    业务场景描述:假设一条流水线上有三个工作者:worker1,worker2,worker3.有一个任务的完成需要他们三者协作完成,worker3可以开始这个任务的前提是worker1和worker2完 ...

  2. Win10开启FTP与配置——(亲测完整无错版)

    #1.控制面板>程序>启用或关闭Windows功能>…(控制面板可在 桌面右键>个性化>主题>桌面图标设置>勾选控制面板>确定) #2.小娜搜索IIS打 ...

  3. WEB知识补充 支付宝 支付

  4. Java中String、StringBuilder和StringBuffer

    StringBuilder和StringBuffer内部都是通过char[]来实现的.(jdk1.9后,底层把char 数组变成了byte[].)唯一不同的就是我们的StringBuffer内部操作方 ...

  5. 使用selenium 多线程爬取爱奇艺电影信息

    使用selenium 多线程爬取爱奇艺电影信息 转载请注明出处. 爬取目标:每个电影的评分.名称.时长.主演.和类型 爬取思路: 源文件:(有注释) from selenium import webd ...

  6. vue:概要

    一.环境 #安装nodejs-官网安装包配置环境变量 node -v #安装webpack npm install webpack -g #安装vue-cli npm install vue-cli ...

  7. 013——C# chart控件时间作为X轴(附教程)

    (一)参考文献:C#之Chart控件系列教程——一 (二)下载地址:https://download.csdn.net/download/xiaoguoge11/11838944 (三)视频教程:ht ...

  8. 学习了武沛齐讲的Day10-完

    int       整形 int     将字符串转换为数字 x.bit_length()  ===== 当前数字的二进制,至少用n位表示 str       字符串 x.capitalize()== ...

  9. luogu 3248

    直接向原树加子树是不可能的考虑重新建立这样一颗树,我们称之为 S 树 将每次需要添加的子树看做一个点,称之为 S 点 新建的树就是由这些点构成的,那么树的大小是合理的 初始节点为整棵原树由于添加的子树 ...

  10. 爬虫(十七):scrapy分布式原理

    一:scrapy工作流程 scrapy单机架构: 单主机爬虫架构: 分布式爬虫架构: 这里重要的就是我的队列通过什么维护?这里一般我们通过Redis为维护,Redis,非关系型数据库,Key-Valu ...