UI:sqlite数据库

使用sqllite的时候一些笔记

数据库(管理类),在工程 general 导入 动态链接库 libsqllite3.0.dylib  在.h文件里引入导入 sqllite3.h 头文件

在.h里面声明两个方法:

(1)打开数据库

(2)关闭数据库

对应文件代码:

#import <Foundation/Foundation.h>
#import <sqlite3.h>

@interface DataBaseManager : NSObject
//打开数据库
+(sqlite3 *)openDataBase;
//关闭数据库
+(void)closeDataBase;
@end
View Code DataBaseManage.h文件

在.m文件里定义一个全局变量来存储数据库对象

然后分别实现两个方法,代码如下:

#import "DataBaseManager.h"

//助手类
/*该类是数据库的管理类,提供两个功能
 1.打开数据库
 2.关闭数据库
 
 导入动态的链接库 libsqllite3.0.dylib 动态链接库,然后导入 sqlite3.h 头文件
 */

//存储数据库对象
static sqlite3 * db = nil;//全局变量写这里也可,写下面也可
@implementation DataBaseManager


//打开数据库
+(sqlite3 *)openDataBase{
    //优化
    if (db) {//如果数据库对象不为空,说明之前打开过,我们直接返回数据库的地址
        return db;
    }
    NSString * filePath = [self getFilePath];
    //打开数据仓库 (对路径进行编码转化)
    //第一个参数:数据库文件夹的位置
    //第二个参数:数据库对象
    sqlite3_open([filePath UTF8String], &db) ;
    return db;
}
//保存的路径
+(NSString *)getFilePath{
    //1,找到沙盒文件位置 2,拼接文件夹路径
//    NSString * str = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)firstObject];
//    NSString * path = [str stringByAppendingPathComponent:@"DataBase.sqlite"];
//    return path;
    return [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)firstObject] stringByAppendingPathComponent:@"DataBase.sqlite"];
}

//关闭数据库
+(void)closeDataBase{
    if (db) {
        sqlite3_close(db);
        db = nil;//设置指针为空
    }
}

@end
View Code DataBaseManage.m文件
原文地址:https://www.cnblogs.com/benpaobadaniu/p/4848142.html