SQLite数据库 *** 作流程

SQLite数据库 *** 作流程,第1张

概述<span style="font-family: Arial, Helvetica, sans-serif;"></span><pre name="code" class="objc"> SQLite常用函数:打开数据库: sqlite3_open();关闭数据库: sqlite3_close();执行SQL语句: sqlite3_exec();编译SQ
<span ></span><pre name="code" >
sqlite常用函数:打开数据库:       sqlite3_open();关闭数据库:       sqlite3_close();执行SQL语句:      sqlite3_exec();编译SQL语句:     sqlite3_prepare_v2();执行查询SQL语句:  sqlite3_setp();结束SQL语句:     sqlite3_finalize();绑定参数:        sqlite3_bind_text();查询字段上的数据: sqlite3_column_text();新建一个类继承于NSObject 添加系统库libsqlite3.dylib 并导入文件#import <sqlite3.h>
 
 
//创建表</span>
- (BOol)createtable{    //        1.打开数据库    //     (1)动态获取doc目录  设置存储数据库目录    Nsstring *doc = [NSSearchPathForDirectorIEsInDomains(NSdocumentDirectory,NSUserDomainMask,YES) lastObject];    //    (2)拼接路径    Nsstring *sqlPath = [doc stringByAppendingPathComponent:@"myData.sqlite"];    //    (3)声明一个数据库变量    sqlite3 *sqlite = nil;    //    (4)打开数据库  :如果有数据库则直接打开,如果没有则创建    int open = sqlite3_open([sqlPath UTF8String],&sqlite);   //    (5)如果打开数据库失败了    if (open != sqlITE_OK) {        NSLog(@"打开失败");        return NO;    }        //        2.写sql数据    Nsstring *sql = @"CREATE table if not exists user(user_name text,user_age integer,user_ID integer )";    //    (1)执行语句    char *error = nil;   int exec = sqlite3_exec(sqlite,[sql UTF8String],NulL,&error);//   (2)如果执行语句失败了    if (exec != sqlITE_OK) {        NSLog(@"执行失败");        sqlite3_close(sqlite);        return NO;    }    //      3.关闭数据库    sqlite3_close(sqlite);        return YES;}//插入数据- (BOol)insertData:(usermodel *)model{//    1.打开数据库    //     (1)动态获取doc目录  设置存储数据库目录    Nsstring *doc = [NSSearchPathForDirectorIEsInDomains(NSdocumentDirectory,YES) lastObject];        //    (2)拼接路径    Nsstring *sqlPath = [doc stringByAppendingPathComponent:@"myData.sqlite"];        //    (3)声明一个数据库变量    sqlite3 *sqlite = nil;        //    (4)打开数据库  :如果有数据库则直接打开,如果没有则创建    int result = sqlite3_open([sqlPath UTF8String],&sqlite);        //    (5)如果打开数据库失败了    if (result != sqlITE_OK) {        NSLog(@"打开失败");        return NO;    }//     2.编写sql数据  ?是占位符    Nsstring *sql = @"insert into user(user_name,user_age,user_ID) values(?,?,?)";    //    3.编译SQL语句    //    (1)声明数据库句柄   sqlite3_stmt *stmt = nil;        //    (2)编译SQL语句   result = sqlite3_prepare_v2(sqlite,-1,&stmt,NulL);       //    (3)如果编译失败了    if (result != sqlITE_OK) {        NSLog(@"编译失败");            // 关闭数据库    sqlite3_close(sqlite);            }       //    (4)绑定数据  int:?的位置 从1开始   //    需要绑定的数据    Nsstring *name = model.name;    NSInteger age = model.age;    NSInteger ID = model.ID;        sqlite3_bind_text(stmt,1,[name UTF8String],nil);    sqlite3_bind_int64(stmt,2,age);    sqlite3_bind_int64(stmt,3,ID);    //    4.执行SQL语句    result = sqlite3_step(stmt);        if (result != sqlITE_DONE) {                NSLog(@"执行语句失败");                //关闭数据库        sqlite3_close(sqlite);                //关闭句柄        sqlite3_finalize(stmt);            }    //    5.关闭数据库和句柄        //关闭数据库    sqlite3_close(sqlite);        //关闭句柄    sqlite3_finalize(stmt);            return YES;}//更新数据- (BOol)updateData{    //    1.打开数据库    //     (1)动态获取doc目录  设置存储数据库目录    Nsstring *doc = [NSSearchPathForDirectorIEsInDomains(NSdocumentDirectory,&sqlite);        //    (5)如果打开数据库失败了    if (result != sqlITE_OK) {        NSLog(@"打开失败");        return NO;    }        //     2.编写sql数据  ?是占位符    Nsstring *sql = @"update user set user_name=? where user_age=? ";        //    3.编译SQL语句    //    (1)声明数据库句柄    sqlite3_stmt *stmt = nil;        //    (2)编译SQL语句    result = sqlite3_prepare_v2(sqlite,NulL);        //    (3)如果编译失败了    if (result != sqlITE_OK) {        NSLog(@"编译失败");                // 关闭数据库        sqlite3_close(sqlite);            }        //    (4)绑定数据  int:?的位置 从1开始    //    需要绑定的数据    Nsstring *name = @"孔子";    NSInteger age = 100;        sqlite3_bind_text(stmt,age);        //    4.执行SQL语句    result = sqlite3_step(stmt);        if (result != sqlITE_DONE) {                NSLog(@"执行语句失败");                //关闭数据库        sqlite3_close(sqlite);                //关闭句柄        sqlite3_finalize(stmt);            }        //    5.关闭数据库和句柄        //关闭数据库    sqlite3_close(sqlite);        //关闭句柄    sqlite3_finalize(stmt);            return YES;}//查询语句- (voID)selectData{    //    1.打开数据库    //     (1)动态获取doc目录  设置存储数据库目录    Nsstring *doc = [NSSearchPathForDirectorIEsInDomains(NSdocumentDirectory,&sqlite);        //    (5)如果打开数据库失败了    if (result != sqlITE_OK) {        NSLog(@"打开失败");    }        //     2.编写sql数据  ?是占位符    Nsstring *sql = @"select * from user where user_name=?";        //    3.编译SQL语句    //    (1)声明数据库句柄    sqlite3_stmt *stmt = nil;        //    (2)编译SQL语句    result = sqlite3_prepare_v2(sqlite,NulL);        //    (3)如果编译失败了    if (result != sqlITE_OK) {        NSLog(@"编译失败");                // 关闭数据库        sqlite3_close(sqlite);            }        //    (4)绑定数据  int:?的位置 从1开始    //    需要绑定的数据    Nsstring *name = @"孔子";        sqlite3_bind_text(stmt,nil);        //    4.执行SQL语句    result = sqlite3_step(stmt);        //循环遍历后的数据列表    while (result == sqlITE_ROW) {        //取出字段为0 的数据       char *name = (char *)sqlite3_column_text(stmt,0);        NSInteger age = sqlite3_column_int64(stmt,1);        NSInteger ID = sqlite3_column_int64(stmt,2);        //char转字符串        Nsstring *nameStr = [Nsstring stringWithUTF8String:name];                NSLog(@"%@,%ld,%ld",nameStr,age,ID);                result = sqlite3_step(stmt);    }        sqlite3_close(sqlite);    sqlite3_finalize(stmt);}
总结

以上是内存溢出为你收集整理的SQLite数据库 *** 作流程全部内容,希望文章能够帮你解决SQLite数据库 *** 作流程所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/1170023.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-02
下一篇 2022-06-02

发表评论

登录后才能评论

评论列表(0条)

保存