以下是一些SQLite3的基本操作,主要是写给自己温习,同时也希望能帮到像我一样的新手!
注意:要在工程中的Frameworks中导入相应的libsqlite3.dylib文件,也许在相应的目录下存在多个以libsqlite3开头的文件,务必选择libsqlite3.dylib,它始终指向最新版的SQLite3库的别名。
打开数据库:
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.");
}
创建数据库:
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 *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);
}
分享到:
相关推荐
只需包含必要的头文件`#import <sqlite3.h>`,就可以在Objective-C代码中使用SQLite API。 2. **创建数据库**: 首先,你需要在应用程序的沙盒中创建一个SQLite数据库文件。可以使用`sqlite3_open()`函数来打开或...
本文将详细介绍如何在iPhone开发中使用SQLite数据库,并通过具体的示例来帮助读者更好地理解和掌握这一技术。 #### 二、SQLite数据库概述 SQLite是一种开源的嵌入式数据库引擎,它不依赖于服务器进程,而是直接...
通过上述知识点的介绍,我们了解了 SQLite3 在 iPhone 数据库应用中的基本使用方法,包括如何打开和关闭数据库、执行 SQL 语句、准备和执行预编译语句以及如何获取查询结果等。这些基础知识对于在 iOS 平台上开发...
本实例将聚焦于如何在iPhone应用中使用SQLite3进行数据持久化操作。 SQLite3是一个嵌入式的SQL数据库引擎,它不需要独立的服务进程,可以直接集成到应用程序中。与Core Data相比,SQLite3提供了更直接的SQL语句操作...
"Iphone Persistence SQLite"这个压缩包文件可能包含了实现上述功能的源代码,你可以通过阅读和运行这些代码来加深对SQLite在iOS应用中使用方法的理解。同时,这也是一个实践的好机会,你可以根据自己的需求修改和...
本文将详细介绍如何在Xcode中使用SQLite3进行iPhone开发,并提供一个封装好的源代码示例。 首先,我们需要了解SQLite3的基本概念。SQLite3是一个关系型数据库管理系统,它的数据以表格的形式存储,表格之间可以通过...
写了一个比较简单的SQLite3的简单demo只实现了增加 更新 删除 获取全部数据 查找 数据库操作部分有详细注释 界面也比较简陋主要是实现一下数据库部分 有问题请与我邮件联系 decemberd@163.com 谢谢
通过学习和实践"最新的iPhone SQLite小程序",开发者不仅可以掌握如何在iOS应用中使用SQLite,还能了解到如何有效地管理数据,提升应用的用户体验。同时,熟悉SQLite也将为开发者在其他平台或项目上的数据库操作打下...
使用`sqlite3_column_*()`函数获取查询结果中的列值。 6. **事务处理**: SQLite支持事务操作,可以使用`BEGIN`, `COMMIT` 和 `ROLLBACK` 语句确保数据的一致性。在发生错误时,可以通过回滚事务来保护数据的完整性...
本案例将探讨如何在iPhone应用中集成并使用SQLite3。 首先,你需要在Xcode项目中引入SQLite3库。这可以通过在“Build Phases”设置中添加`libsqlite3.tbd`或`libsqlite3.dylib`库来完成。确保你的目标平台支持这个...
### SQLite3 命令总结 #### 一、SQLite3 概述 SQLite 是一种轻量级的数据库管理系统,它采用文件存储的方式,因此仅需一个文件即可完成所有功能,非常便于集成到各种应用程序中。由于其轻便、高效的特点,SQLite 在...
在Xcode项目中,要使用SQLite3,首先需要将`libsqlite3.0.dylib`库添加到项目框架中。这可以通过在项目设置的"Frameworks"目录下右键点击并选择`libsqlite3.0.dylib`完成。库的路径通常位于`/Developer/Platforms/...
学习和理解如何在iPhone应用中使用SQLite是iOS开发中的基本技能,这有助于开发出功能丰富的、能够离线存储数据的应用。通过这样的练习,开发者可以更好地掌握数据库操作,提高应用的性能和用户体验。在实际项目中,...
你可以直接在Objective-C或Swift项目中使用。 2. **创建数据库**: 使用`sqlite3_open()`函数打开或创建数据库文件。例如: ```objc sqlite3 *database; if (sqlite3_open([databasePath UTF8String], &database)...
SQLite3库是iOS SDK的一部分,可以直接在Objective-C项目中使用。首先,我们需要导入`sqlite3.h`头文件,然后初始化数据库连接。 3. **创建数据库** 要创建一个新的SQLite数据库,我们需要调用`sqlite3_open()`...
标题 "FMDBdemo (使用FMDB 开发iPhone SQLite)" 提及的是在iOS平台上使用FMDB库进行SQLite数据库开发的应用示例。FMDB是Objective-C的一个SQLite封装库,它为iOS开发者提供了一种简单而强大的方式来操作SQLite...
在iOS中使用SQLite的过程中,需要了解以下重要结构体和主要函数: * `sqlite3 *pdb`:数据库句柄,跟文件句柄`FILE`很类似。 * `sqlite3_stmt *stmt`:这个相当于ODBC的Command对象,用于保存编译好的SQL语句。 * `...
这个文件可能包含预填充的数据,用于展示如何读取和解析SQLite数据库内容,也可能包含了相关的代码示例,展示如何在Objective-C或Swift中使用SQLite API。 在iOS开发中,SQLite通常通过系统提供的`FMDB`库或者苹果...
SQLite3数据库文件由多个Btree结构构成,索引使用B-Tree,而表数据则使用B+Tree结构。 数据恢复过程分为两个关键步骤:找到删除数据的页和恢复底层流文件中的数据。首先,通过十六进制编辑器检查Android手机中的...