<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数据库 *** 作流程所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)