SQLite数据库操作流程
来源:互联网 发布:黑猫影视软件 编辑:程序博客网 时间:2024/05/17 02:22
<span style="font-family: Arial, Helvetica, sans-serif;"></span><pre name="code" class="objc">
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, 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, NSUserDomainMask, 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, [sql UTF8String], -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], -1, 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, NSUserDomainMask, 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 = @"update user set user_name=? where user_age=? "; // 3.编译SQL语句 // (1)声明数据库句柄 sqlite3_stmt *stmt = nil; // (2)编译SQL语句 result = sqlite3_prepare_v2(sqlite, [sql UTF8String], -1, &stmt, NULL); // (3)如果编译失败了 if (result != SQLITE_OK) { NSLog(@"编译失败"); // 关闭数据库 sqlite3_close(sqlite); } // (4)绑定数据 int:?的位置 从1开始 // 需要绑定的数据 NSString *name = @"孔子"; NSInteger age = 100; sqlite3_bind_text(stmt, 1, [name UTF8String], -1, nil); sqlite3_bind_int64(stmt, 2, 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, NSUserDomainMask, 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(@"打开失败"); } // 2.编写SQL数据 ?是占位符 NSString *sql = @"select * from user where user_name=?"; // 3.编译SQL语句 // (1)声明数据库句柄 sqlite3_stmt *stmt = nil; // (2)编译SQL语句 result = sqlite3_prepare_v2(sqlite, [sql UTF8String], -1, &stmt, NULL); // (3)如果编译失败了 if (result != SQLITE_OK) { NSLog(@"编译失败"); // 关闭数据库 sqlite3_close(sqlite); } // (4)绑定数据 int:?的位置 从1开始 // 需要绑定的数据 NSString *name = @"孔子"; sqlite3_bind_text(stmt, 1, [name UTF8String], -1, 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);}
0 0
- SQLite数据库操作流程
- Android SQLite数据库操作流程
- Qt操作SQLite数据库
- sqlite数据库基本操作
- sqlite 数据库的操作
- SQLite数据库的操作
- SQLite数据库操作类
- android sqlite数据库操作
- Fasm操作数据库sqlite
- QT 操作Sqlite数据库
- sqlite数据库查看操作
- SQLite 数据库操作
- SQLite数据库操作
- C++操作SQLite数据库
- .C# 操作SQLite数据库
- sqlite数据库加密操作
- SQLite数据库基本操作
- 如何操作sqlite数据库
- js - select option firefox和chrome 对onclick的支持 使用on
- 自定义TextView实现选择A,B,C,D
- jira安装
- Mysql允许用户远程连接
- 类加载器--java静态方法静态变量
- SQLite数据库操作流程
- 主主配置
- 苹果官方帮助文档
- WEB_前端好的交流网站
- argc与argv[]
- POI导出JavaWeb中的table到excel下载
- 创建第一个 chrome app
- caffe --- 网络参数
- iOS开发笔记--如何去掉UItableview header(footer)view黏性(sticky)