以下是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. Java实习生面试题分享

    1.Java有那些基本数据类型,String是不是基本数据类型,他们有何区别. Java语言提供了八种基本类型: 六种数字类型(四个整数型,两个浮点型) 字节型byte 8位 短整型short 16位 ...

  2. dell 7559 安装Manjaro 18

    本来是装黑苹果的,折腾好几天都装好了,是可以正常使用的,可是clover始终有一个问题,每次启动前需要覆盖一遍EFI分区内EFI目录的CLOVER目录内的所有文件,方能引导MAC. 不然就卡Init ...

  3. CSP模拟赛 Lost My Music(二分,可回退化栈)

    题面 题解 发现是斜率的形式,答案的相反数可以看做一条直线的斜率.那么我们要答案最小,斜率最大.维护下凸壳就行了. 考试时写了直接dfsdfsdfs+暴力弹栈拿了808080分(还以为自己是O(n)正 ...

  4. 普通的java Ftp客户端的文件上传

    关于ftp上传文件其实并不难,但有时候面对现实的环境还是很蛋疼的,今天我就分享一下,普通的上传文件文件至FTP的方式,它满足大部分FTP,但也有特别的,下篇博客会提及到. 下面我用一个FtpUtil, ...

  5. luogu 3702 [SDOI2017]序列计数 矩阵乘法+容斥

    现在看来这道题真的不难啊~ 正着求不好求,那就反着求:答案=总-全不是质数 这里有一个细节要特判:1不是质数,所以在算全不是质数的时候要特判1 code: #include <bits/stdc ...

  6. QShareMemory

    Qt提供了一种安全的共享内存的实现QSharedMemory,以便在多线程和多进程编程中安全的使用.比如说QQ的聊天的客户端,这里有个个性头象,当点击QQ音乐播放器的时候,启动QQ音乐播放器(启动一Q ...

  7. Luogu5071 [Ynoi2015]此时此刻的光辉 【莫队】

    题目链接:洛谷 这个跟上上个Ynoi题目是一样的套路,首先我们知道\(n=\prod p_i^{\alpha_i}\)时\(d(n)=\prod (\alpha_i+1)\). 首先对所有数分解质因数 ...

  8. C#中指针的简单使用

    原来C#不仅仅支持和C/C++中指针(或者说是引用)很像的委托delegate,还支持在unsafe代码块中使用指针,从而写非托管的代码(人为不让垃圾回收机制来管理相应的内存).在unsafe中就可以 ...

  9. Beyond compare4密钥

    w4G-in5u3SH75RoB3VZIX8htiZgw4ELilwvPcHAIQWfwfXv5n0IHDp5hv1BM3+H1XygMtiE0-JBgacjE9tz33sIh542EmsGs1yg6 ...

  10. Spring Cloud Gateway(八):其它路由谓词工厂

    本文基于 spring cloud gateway 2.0.1 6.基于Cookie的谓词工厂 CookieRoutePredicateFactory 是 Cookie 类型的路由断言工厂,接收两个参 ...