iOS 数据库sqlite3.0操作--超简单--看我就够啦

iOS客户端数据存储的方式有很多,下面主要是介绍苹果自带的sqlite3.0的使用方法。

首先导入sqlite3.0的框架。然后导入头文件#import <sqlite3.h>就行了

下面介绍怎么使用。直接上代码吧...

    // 1 设置数据库文件路径

    NSString *dataBaseFilePath = [NSHomeDirectory() stringByAppendingPathComponent:@"MyFile"];

    

    // 创建数据库 句柄

    sqlite3 *db;

    char *error;

 

    // 2 打开数据库。数据文件不存在时,自动创建文件

    if (sqlite3_open([dataBaseFilePath UTF8String], &db) == SQLITE_OK) {

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

    }

    else {

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

 

    // 3: 创建数据库表

    NSString *createSql = @"create table if not exists myTable(id integer primary key autoincrement, name text, age integer, address text)";

 

    if (sqlite3_exec(db, [createSql UTF8String], NULL, NULL, &error) == SQLITE_OK) {

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

    } else {

        NSLog(@"表创建失败: %s", error);

        

        // 每次使用完毕清空 error 字符串,提供给下一次使用

        sqlite3_free(error);

    }

    }

 

    // 插入数据

    NSString *insertSql = @"insert into myTable(name, age, address) values('小新', '8', '东城区')";

    

    if (sqlite3_exec(db, [insertSql UTF8String], NULL, NULL, &error) == SQLITE_OK) {

        NSLog(@"插入成功.");

    } else {

        NSLog(@"插入失败: %s", error);

        

        // 每次使用完毕清空 error 字符串,提供给下一次使用

        sqlite3_free(error);

    }

 

    // 修改记录

    NSString *updateSql = @"update myTable set name = '小白', age = '10', address = '西城区' where id = 2";

    

    if (sqlite3_exec(db, [updateSql UTF8String], NULL, NULL, &error) == SQLITE_OK) {

        NSLog(@"修改成功.");

    } else {

        NSLog(@"修改失败: %s", error);

        

        // 每次使用完毕清空 error 字符串,提供给下一次使用

        sqlite3_free(error);

    }

    

    // 删除记录

    NSString *deleteSql = @"delete from myTable where id = 3";

    

    if (sqlite3_exec(db, [deleteSql UTF8String], NULL, NULL, &error) == SQLITE_OK) {

        NSLog(@"删除成功");

    } else {

        NSLog(@"删除失败: %s", error);

        

        // 每次使用完毕清空 error 字符串,提供给下一次使用

        sqlite3_free(error);

    }

 

    // 查询记录

    sqlite3_stmt *statement;

    // @"select * from myTable"  查询所有 key 值内容

    NSString *selectSql = @"select id, name, age, address from myTable";

    

    if (sqlite3_prepare_v2(db, [selectSql UTF8String], -1, &statement, nil) == SQLITE_OK) {

        

        while(sqlite3_step(statement) == SQLITE_ROW) {

            

            // 查询 id 的值

            int _id = sqlite3_column_int(statement, 0);

            

            // 查询 name 的值

            NSString *name = [NSString stringWithUTF8String:(char *)sqlite3_column_text(statement, 1)];

            

            // 查询 age

            int age = sqlite3_column_int(statement, 2);

            

            // 查询 address 的值

            NSString *address = [NSString stringWithUTF8String:(char *)sqlite3_column_text(statement, 3)];

            

            NSLog(@"id: %i, name: %@, age: %i, address: %@", _id, name, age, address);

        }

    } else {

        NSLog(@"查询失败.");

    }

    

    sqlite3_finalize(statement);

    

    // 数据库关闭

    sqlite3_close(db);

 

 

 

原文地址:https://www.cnblogs.com/110-913-1025/p/7125293.html