• 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);

     

     

     

  • 相关阅读:
    格式与布局 float 左右悬浮边框
    格式与布局
    样式表
    c# 验证码
    邮箱登录页面
    表单与框架
    HTML 练习 做简历表
    HTML 基础
    验证码 随机数
    Linux 三剑客 -- awk sed grep
  • 原文地址:https://www.cnblogs.com/110-913-1025/p/7125293.html
Copyright © 2020-2023  润新知