iOS開發之FMDB的是本使用

FMDB是將sqlite3的語法封裝成OC的語法
sql

基於sqlite3的數據庫

使用的步驟:網絡

1.建立打開一個數據庫dom

2.向數據庫裏添加一個表spa

3.數據的增刪改查.net

首先這裏要使用一個第三方庫fmdb,導入這個以後,操做以下添加-fno-objc-arc3d

而後鏈接庫中鏈接libsqlite3orm

代碼以下:sqlite

//對象

//  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

相關文章
相關標籤/搜索