博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
IPhone中SQLite3的使用
阅读量:4172 次
发布时间:2019-05-26

本文共 1705 字,大约阅读时间需要 5 分钟。

以下是一些SQLite3的基本操作,主要是写给自己温习,同时也希望能帮到像我一样的新手! 
注意:要在工程中的Frameworks中导入相应的libsqlite3.dylib文件,也许在相应的目录下存在多个以libsqlite3开头的文件,务必选择libsqlite3.dylib,它始终指向最新版的SQLite3库的别名。 
打开数据库:
 


Objective-c代码  
  1. NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);  
  2.   
  3.     NSString *documentsDirectory = [paths objectAtIndex:0];  
  4.   
  5.     NSString *path = [documentsDirectory stringByAppendingPathComponent:@"database.sqlite"];//database.sqlite为自己定义数据库名称  
  6.   
  7.     NSFileManager *fileManager = [NSFileManager defaultManager];  
  8.   
  9.     databasePath_ = path;  
  10.   
  11.     BOOL find = [fileManager fileExistsAtPath:path];  
  12.   
  13.     if (!find) {          
  14.   
  15.         NSString *rePath = getBundleFilePath(@"database", @"sqlite");  
  16.   
  17.         NSData *dataFile = [NSData dataWithContentsOfFile:rePath];  
  18.   
  19.         [dataFile writeToFile:databasePath_ atomically:YES];  
  20.   
  21.     }  
  22.     NSLog(@"Database file have already existed.");  
  23.   
  24.     if(sqlite3_open([path UTF8String], &database_) != SQLITE_OK) {  
  25.   
  26.         sqlite3_close(database_);  
  27.   
  28.         NSLog(@"Error: open database file.");  
  29.     }  

创建数据库:
 


Objective-c代码  
  1. NSString *creatSQL = @"CREATE TABLE IF NOT EXISTS FIELDS (ROW INTEGER PRIMARY KEY, FIELD_DATA TEXT);";  
  2.   
  3.     if (sqlite3_exec(database, [creatSQL UTF8String], NULL, NULL, &errorMsg) != SQLITE_OK) {  
  4.   
  5.         sqlite3_close(database);  
  6.   
  7.         NSLog@"Error creating table");  
  8.     }  


对表的操作,以查询为例


Objective-c代码  
  1. NSString *query = @"SELECT ROW, FIELD_DATA FROM FIELDS ";  
  2.   
  3. sqlite3_stmt *statement;  
  4.   
  5.     if (sqlite3_prepare_v2(database, [query UTF8String], -1, &statement, nil) != SQLITE_OK) {  
  6.         while (sqlite3_step(statement) == SQLITE_ROW) {  
  7.   
  8.             int row = sqlite3_column_int(statement, 0);//第一列  
  9.   
  10.             char *rowData = (char *)sqlite3_column_text(statement, 1);//第二列  
  11.               
  12.             NSString *fieldValue = [[NSString alloc] initWithUTF8String:rowData];  
  13.               
  14.             [fieldValue release];  
  15.         }  
  16.         sqlite3_finalize(statement);  
  17.     }  

转载地址:http://tuyai.baihongyu.com/

你可能感兴趣的文章
Intellij IDEA 创建资源文件夹 source folder
查看>>
Java核心技术卷2 高级特性 学习笔记(1)
查看>>
Java核心技术卷2 高级特性 学习笔记(4)
查看>>
最大乘积
查看>>
最长公共子串
查看>>
codeforces831c 思维
查看>>
CodeForces - 785C Anton and Fairy Tale
查看>>
CodeForces - 831D Office Keys
查看>>
hdu 1258 确定比赛名次
查看>>
hdu 3342 拓扑,是否存在环
查看>>
poj 1860 拓扑。。
查看>>
poj 2553 The Bottom of a Graph 未完
查看>>
inux下如何统计一个目录下的文件个数以及代码总行数(转)
查看>>
Linux下 虚拟机Bochs的使用
查看>>
glib-读取配置文件
查看>>
SonarQube 静态代码检查的安装
查看>>
嵌入式Linux驱动开发的知识图谱
查看>>
Algorithm 4th environment setup
查看>>
Linux设备驱动开发基础之互斥与同步基础
查看>>
Linux驱动开发之内存管理基础
查看>>