ios学习--SQLite3的使用
2012-05-28 19:14
387 查看
以下是一些SQLite3的基本操作,主要是写给自己温习,同时也希望能帮到像我一样的新手!
注意:要在工程中的Frameworks中导入相应的libsqlite3.dylib文件,也许在相应的目录下存在多个以libsqlite3开头的文件,务必选择libsqlite3.dylib,它始终指向最新版的SQLite3库的别名。
打开数据库:
Objective-c代码
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *path = [documentsDirectory stringByAppendingPathComponent:@"database.sqlite"];//database.sqlite为自己定义数据库名称
NSFileManager *fileManager = [NSFileManager defaultManager];
databasePath_ = path;
BOOL find = [fileManager fileExistsAtPath:path];
if (!find) {
NSString *rePath = getBundleFilePath(@"database", @"sqlite");
NSData *dataFile = [NSData dataWithContentsOfFile:rePath];
[dataFile writeToFile:databasePath_ atomically:YES];
}
NSLog(@"Database file have already existed.");
if(sqlite3_open([path UTF8String], &database_) != SQLITE_OK) {
sqlite3_close(database_);
NSLog(@"Error: open database file.");
}
创建数据库:
Objective-c代码
NSString *creatSQL = @"CREATE TABLE IF NOT EXISTS FIELDS (ROW INTEGER PRIMARY KEY, FIELD_DATA TEXT);";
if (sqlite3_exec(database, [creatSQL UTF8String], NULL, NULL, &errorMsg) != SQLITE_OK) {
sqlite3_close(database);
NSLog@"Error creating table");
}
对表的操作,以查询为例
Objective-c代码
NSString *query = @"SELECT ROW, FIELD_DATA FROM FIELDS ";
sqlite3_stmt *statement;
if (sqlite3_prepare_v2(database, [query UTF8String], -1, &statement, nil) != SQLITE_OK) {
while (sqlite3_step(statement) == SQLITE_ROW) {
int row = sqlite3_column_int(statement, 0);//第一列
char *rowData = (char *)sqlite3_column_text(statement, 1);//第二列
NSString *fieldValue = [[NSString alloc] initWithUTF8String:rowData];
[fieldValue release];
}
sqlite3_finalize(statement);
}
注意:要在工程中的Frameworks中导入相应的libsqlite3.dylib文件,也许在相应的目录下存在多个以libsqlite3开头的文件,务必选择libsqlite3.dylib,它始终指向最新版的SQLite3库的别名。
打开数据库:
Objective-c代码
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *path = [documentsDirectory stringByAppendingPathComponent:@"database.sqlite"];//database.sqlite为自己定义数据库名称
NSFileManager *fileManager = [NSFileManager defaultManager];
databasePath_ = path;
BOOL find = [fileManager fileExistsAtPath:path];
if (!find) {
NSString *rePath = getBundleFilePath(@"database", @"sqlite");
NSData *dataFile = [NSData dataWithContentsOfFile:rePath];
[dataFile writeToFile:databasePath_ atomically:YES];
}
NSLog(@"Database file have already existed.");
if(sqlite3_open([path UTF8String], &database_) != SQLITE_OK) {
sqlite3_close(database_);
NSLog(@"Error: open database file.");
}
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); NSString *documentsDirectory = [paths objectAtIndex:0]; NSString *path = [documentsDirectory stringByAppendingPathComponent:@"database.sqlite"];//database.sqlite为自己定义数据库名称 NSFileManager *fileManager = [NSFileManager defaultManager]; databasePath_ = path; BOOL find = [fileManager fileExistsAtPath:path]; if (!find) { NSString *rePath = getBundleFilePath(@"database", @"sqlite"); NSData *dataFile = [NSData dataWithContentsOfFile:rePath]; [dataFile writeToFile:databasePath_ atomically:YES]; } NSLog(@"Database file have already existed."); if(sqlite3_open([path UTF8String], &database_) != SQLITE_OK) { sqlite3_close(database_); NSLog(@"Error: open database file."); }
创建数据库:
Objective-c代码
NSString *creatSQL = @"CREATE TABLE IF NOT EXISTS FIELDS (ROW INTEGER PRIMARY KEY, FIELD_DATA TEXT);";
if (sqlite3_exec(database, [creatSQL UTF8String], NULL, NULL, &errorMsg) != SQLITE_OK) {
sqlite3_close(database);
NSLog@"Error creating table");
}
NSString *creatSQL = @"CREATE TABLE IF NOT EXISTS FIELDS (ROW INTEGER PRIMARY KEY, FIELD_DATA TEXT);"; if (sqlite3_exec(database, [creatSQL UTF8String], NULL, NULL, &errorMsg) != SQLITE_OK) { sqlite3_close(database); NSLog@"Error creating table"); }
对表的操作,以查询为例
Objective-c代码
NSString *query = @"SELECT ROW, FIELD_DATA FROM FIELDS ";
sqlite3_stmt *statement;
if (sqlite3_prepare_v2(database, [query UTF8String], -1, &statement, nil) != SQLITE_OK) {
while (sqlite3_step(statement) == SQLITE_ROW) {
int row = sqlite3_column_int(statement, 0);//第一列
char *rowData = (char *)sqlite3_column_text(statement, 1);//第二列
NSString *fieldValue = [[NSString alloc] initWithUTF8String:rowData];
[fieldValue release];
}
sqlite3_finalize(statement);
}
相关文章推荐
- 【iOS知识学习】_iOS下SQLite的使用
- IOS 开发学习33 使用sqlite3
- ios学习--sqlite3数据库的使用
- iOS: 学习笔记, 使用FMDatabase操作sqlite3
- 【iOS知识学习】_iOS下SQLite的使用
- IOS 开发学习33 使用sqlite3
- iOS学习之sqlite的创建数据库,表,插入查看数据
- iOS学习之sqlite的创建数据库,表,插入查看数据
- ios学习笔记:UIAlertView的使用
- iOS学习笔记38-MJExtension使用
- iOS开发之SQLite--C语言接口规范(五)——iOS开发使用SQLite实例
- IOS学习之NSBundle介绍和使用
- IOS开发学习笔记011-xcode使用技巧
- 零基础学习IOS开发(二)- 使用cocos2d-x3.0 运行Hello world
- IOS学习——自定义View与使用block实现事件处理入门
- IOS 学习九 Navigation Controller 的使用示例
- iOS学习之WebView的使用
- 从零开始--系统深入学习IOS(使用Swift---带链接)
- iOS学习-Block使用
- iOS学习之UIActionSheet的使用