分享

IOS Sqlite的详细使用方法

 叹落花 2014-12-24
    // 在ios中,我们使用的数据库也是Sqlite,和Android一样,操作方法也很类似,不同的是Android中使用的sqlite都是java语句,而ios中使用的Sqlite则是C语言,纯的C语言

// 在ios中使用Sqlite数据库需要引入一个矿建,就是libsqlite3.dylib框架
// 如下图,首先点击项目,找到Build Phases--Link Binary With Libraries, 然后点击左下角的小加号
IOS <wbr>Sqlite的详细使用方法



// 输入sqlite进行模糊搜索,然后选择下面那个libsqlite3.dylib 
IOS <wbr>Sqlite的详细使用方法


// 选好之后就是这样
IOS <wbr>Sqlite的详细使用方法

// 使用前需要引入 注意是<>括号,不是双引号

#import <sqlite3.h>


// 然后开始代码部分
// 创建数据库

#pragma mark 打开创建数据库

- (void)openDataBase {

    // 创建并打开数据库

    // 获取数据库的路径

    NSString *documentPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];

    // 设置数据库的路径和名词

    NSString *dataBasePath = [[NSString alloc] initWithString:[documentPath stringByAppendingPathComponent:@"sqlite.sqlite"]];

    // 创建并打开数据库

    int result = sqlite3_open([dataBasePath UTF8String], &db);

    if (result == SQLITE_OK) {

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

    } else {

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

    }

}



// 创建数据表

#pragma mark 创建数据表

- (void)createTabels {

    // sql语句

    char *sql = "create table if not exists t_persons (id integer primary key autoincrement, name text, age integer);";

    // 用于保存错误信息 

    char *error;

    // 执行创建语句并接收结果

    int result = sqlite3_exec(db, sql, NULL, NULL, &error);

    // 判断是否创建成功

    if (result != SQLITE_OK) {

        NSLog(@"创建数据表失败~~~~~~~~%s", error);

    } else {

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

    }

}



// 插入数据

#pragma mark 插入数据

- (void)insertData {

     // sql语句

    char *sql = "insert into t_persons(name, age) values(?, ?)";

    // 存储的内容

    sqlite3_stmt *stmt;

    // 执行语句并接收结果

    int result = sqlite3_prepare_v2(db, sql, -1, &stmt, NULL);

    // 判断是否成功

    if (result == SQLITE_OK) { // 语法通过

        // 绑定数据

        sqlite3_bind_text(stmt, 1, "lidaze", -1, NULL);

        sqlite3_bind_int(stmt, 2, 10);

        // 执行插入语句

        if (sqlite3_step(stmt)  == SQLITE_DONE) {

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

        } else {

            NSLog(@"插入失败");

        }

    } else {

        NSLog(@"语法不通过 ");

    }

    // 释放stmt

    sqlite3_finalize(stmt);

}



// 查找数据

#pragma mark 查找数据

- (void)findData {

    // 准备C语言sql语句

    char *sql = "select * from t_persons";

    // 准备stmt

    sqlite3_stmt *stmt;

    // 判断sql语句,并接收结果

    int result = sqlite3_prepare_v2(db, sql, -1, &stmt, NULL);

    // 判断结果

    if (result == SQLITE_OK) { // sql语句正确

        NSLog(@"sql语句正确");

        // 进行逐行读取内容

        while (sqlite3_step(stmt) == SQLITE_ROW) {

            int ID = sqlite3_column_int(stmt, 0);

            char *name = (char *)sqlite3_column_text(stmt, 1);

            int age = sqlite3_column_int(stmt, 2);

            

            NSLog(@"id:%i, name:%s, age:%i", ID, name, age);

        }

    } else {

        NSLog(@"sql语句错误");

    }

}


// 删除数据

#pragma mark 删除数据

- (void)deleteData {

    // 准备sql语句

    char *sql = "delete from t_persons where id = ?";

    // stmt

    sqlite3_stmt *stmt;

    // 判断sql语句

    int result = sqlite3_prepare(db, sql, -1, &stmt, NULL);

    // 判断sql语句时候通过

    if (result == SQLITE_OK) {

        NSLog(@"删除语句正确");

        // 绑定数据

        sqlite3_bind_int(stmt, 1, 58);

        // 判断时候执行成功

        if (sqlite3_step(stmt) == SQLITE_DONE) {

            NSLog(@"删除成功");

        } else {

            NSLog(@"删除是吧i");

        }

    } else {

        NSLog(@"删除语句错误");

    }

}



// 修改数据

#pragma mark 修改数据

- (void)updateData {

    // 准备C语言sql语句

    char *sql = "update t_persons set name = ?, age=18 where id = ?;";

    // 准备stmt

    sqlite3_stmt *stmt;

    // 执行sql语句的判断

    int result = sqlite3_prepare(db, sql, -1, &stmt, NULL);

    // 判断sql语句时候可用

    if (result == SQLITE_OK) {

        NSLog(@"修改语句正确");

        // 绑定数据

        sqlite3_bind_text(stmt, 1, "Zeeeeeeeeeee", -1, NULL);

        sqlite3_bind_int(stmt, 2, 62);

        // 执行并判断结果

        if (sqlite3_step(stmt) == SQLITE_DONE) {

            NSLog(@"修改成功");

        } else {

            NSLog(@"修改失败....");

        }

    } else {

        NSLog(@"修改语句错误....");

    }

}





    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多