首页 > 代码库 > 代码实现打开和关闭数据库
代码实现打开和关闭数据库
+ (sqlite3 *)openDB
{
if (db == nil) {
//获取Document文件的路径
//参数1:文件夹名字 参数2:查找域 参数3:是否使用绝对路径
NSString *docPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) firstObject];
//(2)数据库文件的路径
NSString *dbPath = [docPath stringByAppendingPathComponent:FILE_NAME];
//ios 中管理文件的类,负责复制文件,删除文件,移动文件(和文件有关的操作)
NSFileManager *fm = [NSFileManager defaultManager];
//判断document中是否有sqlite文件
if (![fm fileExistsAtPath:dbPath])
{
//*.app中sqlite文件的路径;
NSString *bundlePath = [[NSBundle mainBundle] pathForResource:@"DataBase" ofType:@"sqlite"];
NSError *error = nil;
//拷贝bundlePath到dbPath
BOOL result = [fm copyItemAtPath:bundlePath toPath:dbPath error:&error];
if (!result) {
NSLog(@"%@",error);//如果发生错误打印错误信息;
}
}
//打开数据库
//参数1:文件路径; 参数2:接收数据库的指针
sqlite3_open([dbPath UTF8String], &db);
}
return db;
}
+ (void)closeDB
{
sqlite3_close(db);
db = nil;
}
{
if (db == nil) {
//获取Document文件的路径
//参数1:文件夹名字 参数2:查找域 参数3:是否使用绝对路径
NSString *docPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) firstObject];
//(2)数据库文件的路径
NSString *dbPath = [docPath stringByAppendingPathComponent:FILE_NAME];
//ios 中管理文件的类,负责复制文件,删除文件,移动文件(和文件有关的操作)
NSFileManager *fm = [NSFileManager defaultManager];
//判断document中是否有sqlite文件
if (![fm fileExistsAtPath:dbPath])
{
//*.app中sqlite文件的路径;
NSString *bundlePath = [[NSBundle mainBundle] pathForResource:@"DataBase" ofType:@"sqlite"];
NSError *error = nil;
//拷贝bundlePath到dbPath
BOOL result = [fm copyItemAtPath:bundlePath toPath:dbPath error:&error];
if (!result) {
NSLog(@"%@",error);//如果发生错误打印错误信息;
}
}
//打开数据库
//参数1:文件路径; 参数2:接收数据库的指针
sqlite3_open([dbPath UTF8String], &db);
}
return db;
}
+ (void)closeDB
{
sqlite3_close(db);
db = nil;
}
代码实现打开和关闭数据库
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。