iOS开发之FMDB的是本使用

FMDB是将sqlite3的语法封装成OC的语法

基于sqlite3的

使用的步骤:

1.创建打开一个数据库

2.向数据库里添加一个表

3.数据的增删改查

首先这里要使用一个第三方库fmdb,导入这个之后,操作如下添加-fno-objc-arc

然后连接库中连接libsqlite3

iOS开发之FMDB的是本使用_第1张图片

代码如下:

//

//  ViewController.m

//  01-FMDB的基本适用

//

//  Created byon 16/5/4.

//  Copyright (c) 2016 鹿微微鹿. All rights reserved.

//

//FMDBsqlite3的语法封装成了OC的语法

//基于sqlite3

//适用步骤:1.创建打开一个数据库

//2.向数据库里添加一个表

//3.数据的增删改查


#import "ViewController.h"

#import "FMDatabase.h"

@interface ViewController (){

    

    FMDatabase *_db ;

}


@end


@implementation ViewController


- (void)viewDidLoad {

    [super viewDidLoad];


    //1.创建/打开数据库

    [self createDB];

    

    //2.添加表

    [self createTable];

    

    //3.添加数据

    //[self insertData];


    //4.数据查询

    [self selectData];


}

#pragma mark - 创建或者打开数据库

- (void) createDB{

    

    //1.创建数据库对象

    //参数:数据库的路径

    //数据库文件的后缀可以是.sqlite也可以是.db;

    _db = [[FMDatabase alloc]initWithPath:@"/Users/IOS1601/Desktop/my files/网络第一周/day7/数据库文件/user.db"];

    //2.打开数据库(如果数据库已经存在就直接打开,如果不存在就先创建这个数据库然后再打开)

    //返回值就是操作是否成功;

    BOOL ret = [_db open];

    

    //3.判断数据库打开是否成功

    if (ret) {

        NSLog(@"数据库打开成功");

        

    }else{

        

        NSLog(@"数据库打开失败");

    }

}

#pragma mark - 添加表

- (void)createTable{

    

    //1.创建sql语句

    NSString *sql  = @"CREATE TABLE IF NOT EXISTS t_person (id  integer PRIMARY KEY AUTOINCREMENT,name text NOT NULL,sex text,age integer DEFAULT 10);";

    

    //2.执行sql语句

    //executeUpdate方法是用来执行DDLDML语句的

    //DQL不可以适用这个方法来执行

    //返回值:是否成功执行

    BOOL ret =  [_db executeUpdate:sql];

    

    //3.判断是否成功

    if (ret) {

        NSLog(@"创建表成功");

    }else{

        NSLog(@"创建表失败");

    }

}


#pragma mark - 添加数据

- (void) insertData{

    //===============插入单条数据================

    //1.创建sql语句

    NSString *sql = @"INSERT INTO t_person (name,sex,age) VALUES ('fanjuan','',22);";

    

    //2.执行sql语句

   BOOL ret = [_db executeUpdate:sql];

    

    //3.判断是否成功

    if (ret) {

        NSLog(@"数据插入成功");

    }else{

        NSLog(@"插入数据失败");

    }

    

    //===============插入多条数据===================


    for (int i = 0; i<10; i++) {

        

        //?就是sql语法中的占位符号

        NSString *sql2 = @"INSERT INTO t_person (name,sex,age) VALUES (?,?,?);";

        

        //姓名

        NSString *name = [NSString stringWithFormat:@"樊娟%d",i];

        //性别

        NSString *sex = arc4random() % 2 == 0 ? @"":@"";

        //年龄

        NSString *age = [NSString stringWithFormat:@"%d",arc4random() %10+10];

        //sql语句带占位符,通过executeUpdate来执行,执行的第一个参数

        //sql语句,其他的都是sql语句中占位符对应的值;

        BOOL ret = [_db executeUpdate:sql2,name,sex,age];

        

        if (ret) {

            NSLog(@"批量插入成功");

        }else{

            NSLog(@"批量插入失败");

        }

        

    }



}

#pragma mark -数据查询

- (void) selectData{

    

    //1.写一个查询的sql语句

    NSString *sql = @"SELECT * FROM t_person;";

    

    //2.执行sql语句

    //FMResultSet就是结果集

    //执行完毕后,会将查询结果放到set

    FMResultSet *set =  [_db executeQuery:sql];

    

    //3.遍历结果集

    while ([set  next]) {

        NSString *name = [set objectForColumnName:@"name"];

        NSString *sex = [set objectForColumnName:@"sex"];

        NSInteger age = [set intForColumn:@"age"];

        NSLog(@"%@ %@ %d",name,sex,(int)age);

        

    }

 

    

    

    

}

@end
































你可能感兴趣的:(FMDB)