ios數(shù)據(jù)存儲--SQLite的簡單使用

第一步:添加文庫libsqlite3.tbd

添加庫文件:libsqlite3.tbd
輸入sqlite,選擇 libsqlite3.tbd

第二步:整個viewController.m文件

//
//  ViewController.m
//  sqlliteTest01
//
//  Created by qianfeng on 16/9/24.
//  Copyright ? 2016年 qianfeng. All rights reserved.
//

#import "ViewController.h"

@interface ViewController ()
{
    sqlite3 *_DB;
}
@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    
    [self openDB];
    [self createTABLE];
    [self insertDATA];
    [self findDATA];
}

/*
 1.打開數(shù)據(jù)庫
 */
-(void)openDB
{
     //數(shù)據(jù)庫保存路徑
    NSArray *array = NSSearchPathForDirectoriesInDomains(
NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *documentPath = [array lastObject];
    NSLog(@"數(shù)據(jù)庫路徑= %@",documentPath);
    
    NSString *dataBasePath = [documentPath
stringByAppendingPathComponent:@"sql.db"];

   // open數(shù)據(jù)庫(不存在則創(chuàng)建)
    int result = sqlite3_open([dataBasePath UTF8String], &_DB);
    if (result == SQLITE_OK) {
        NSLog(@"數(shù)據(jù)庫打開成功");
    }else{
        NSLog(@"數(shù)據(jù)庫打開失敗");
    }
}

/*
 2.創(chuàng)建表
 */
-(void)createTABLE
{
    char *errorMsg;
    NSString *sql = @"create table if not exists user
(u_id integer primary key autoincrement,name text,password text)";
    
    int result = sqlite3_exec(_DB, [sql UTF8String], NULL, NULL, 
&errorMsg);
    if ( result == SQLITE_OK) {
        NSLog(@"表創(chuàng)建成功");
    }else{
        NSLog(@"表創(chuàng)建失敗 = %s",errorMsg);
        sqlite3_free(errorMsg);
    }
}

/*
 3.插入數(shù)據(jù)
 */
-(void)insertDATA
{
    NSString *sql_insert = [NSString stringWithFormat:
@"insert into user(name,password) values(?,?);"];

    //檢查sql語句
    sqlite3_stmt *stmp;
    int result = sqlite3_prepare_v2(_DB, [sql_insert UTF8String], 
-1, &stmp, NULL);

    if (result == SQLITE_OK) {
        NSLog(@"將要執(zhí)行的插入語句正確");
        //綁定參數(shù)(下標從1開始,-1代表字符串長度)
        sqlite3_bind_text(stmp, 1, "zh123456", -1, NULL);
        sqlite3_bind_text(stmp, 2, "mm123456", -1, NULL);
        
        //
        int result2 = sqlite3_step(stmp);
        if (result2 == SQLITE_DONE) {
            NSLog(@"插入成功");
        }else{
            NSLog(@"插入失敗");
        }
        
        
    }else{
        NSLog(@"將要執(zhí)行的插入語句錯誤");
    }//end (if)
}
/*
 4.查詢數(shù)據(jù)
 */
-(void)findDATA
{
    NSString *sql_select = @"select * from user";
    
    sqlite3_stmt *stmt;
    int result = sqlite3_prepare_v2(_DB, [sql_select UTF8String], 
-1, &stmt, NULL);

    if (result == SQLITE_OK) {
        NSLog(@"查詢SQL語法正確");
        while (sqlite3_step(stmt) == SQLITE_ROW) {
            //查詢的列是從0開始,插入的列是從1開始
            int u_id = sqlite3_column_int(stmt, 0);
            char *name = (char *)sqlite3_column_text(stmt, 1);
            char *password = (char *)sqlite3_column_text(stmt, 2);
            NSLog(@"u_id = %i ,name = %s ,
                          password = %s",u_id,name,password);
        }

    }else{
        NSLog(@"查詢SQL語法有誤");
    }
}
@end

|
|


最后:運行即可. . .

|
|

微云網(wǎng)盤:sqliteTest1

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容