使用sqllite的时候一些笔记
数据库(管理类),在工程 general 导入 动态链接库 libsqllite3.0.dylib 在.h文件里引入导入 sqllite3.h 头文件
在.h里面声明两个方法:
(1)打开数据库
(2)关闭数据库
对应文件代码:
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
#import <Foundation/Foundation.h> #import <sqlite3.h> @interface DataBaseManager : NSObject //打开数据库 +(sqlite3 *)openDataBase; //关闭数据库 +(void)closeDataBase; @end
在.m文件里定义一个全局变量来存储数据库对象
然后分别实现两个方法,代码如下:
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
#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