IPhone中SQLite3的使用

[size=medium]
以下是一些SQLite3的基本操作,主要是写给自己温习,同时也希望能帮到像我一样的新手!

[color=red]注意:要在工程中的Frameworks中导入相应的libsqlite3.dylib文件,也许在相应的目录下存在多个以libsqlite3开头的文件,务必选择libsqlite3.dylib,它始终指向最新版的SQLite3库的别名。
[/color]
打开数据库:[/size]

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.");
}

[size=medium]
创建数据库:[/size]

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");
}


[size=medium]
对表的操作,以查询为例 [/size]

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);
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值