以下是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. springcloud服务提供producer and 服务调用consumer

    ---------------------------------producer------------------------------------------- 1.pom文件中,作为客户端的 ...

  2. VueRouter基础

    安装 直接下载(官方CDN) https://unpkg.com/vue-router/...通过页面script标签引入,如下: <script src='https://unpkg.com/ ...

  3. 60、springmvc-异步请求-返回Callable

    60.springmvc-异步请求-返回Callable @Controller public class AsyncController { @RequestMapping("async0 ...

  4. js 实现多文件批量下载

    关于兼容性问题: <a href="xxx.docx" target='_blank'></a> 下载文件时,这种写法是没有兼容性问题:但是下载图片时,IE ...

  5. Pytest从测试类外为测试用例动态注入数据

    今天Nelly问我Pytest能不能支持从TestClass类外传入参数?从类外批量传入各个test方法需要的参数.因为数据文件可能有很多情况,不方便依次匹配. 然而又必须用类对用例进行归类及复用,数 ...

  6. es 修改 mapping 字段类型

    一.原索引 PUT my_index { "mappings": { "_doc": { "properties": { "cre ...

  7. [CERC2015]Juice Junctions(边双连通+字符串hash)

    做法 考虑边数限制的特殊条件,显然答案仅有\(\{0,1,2,3\}\) 0:不联通 1:连通 2:边双连通 3:任意删掉一条边都为边双连通 考虑每次删边后记录各点的边双染色情况来特判\(3\):是否 ...

  8. Effective Java 3

    <Effective Java>作者是美国的Joshua Bloch,连Gosling都说需要看的书,讨论的是更深层次的Java开发技术,适合于有一定Java基础的人看. 这是一本分享经验 ...

  9. LUA table中函数的调用

    1 lua中函数作为表中元素时有三种定义方式 采用‘:’来定义,实际上隐藏了一个形参的声明,这个形参会截获调用函数时的第一个实参并把它赋值给self 2 调用方式,点号和冒号 functb:hello ...

  10. DES算法实现

    概述(团队项目) DES是一个分组加密算法,它以64位为分组对数据加密.同时DES也是一个对称算法:加密和解密用的是同一个算法.DES是一个包含16个阶段的"替换–置换"的分组加密 ...