// 创建一个全局的静态的数据库 (数据库是一个文件)
// 为什么要用static?
// 因为要保证的数据对象之有一个
static sqlite3 *db = nil;
@implementation SQLManager
#pragma 打开数据库
+(sqlite3 *)openDB
{
// 一、数据库已经打开的情况
if (db) {
return db;
}
// 二、没有打开的情况
// 1.先创建一个(document)路径
NSString *docPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)objectAtIndex:0];
// 2.在docPath路径下面创建一个数据库路径
// 通常数据库文件都要以 .sqlite 结尾,这样用数据库的图形工具可以直接打开
NSString *filePath = [docPath stringByAppendingPathComponent:@"studentDB.sqlite"];
NSLog(@"filePath = %@",filePath);
// 3.在filePath路径下创建一个数据库文件 (所有SQLite的操作都是基于 C语言的接口)
// 参数一:数据库文件的路径
// 参数二:数据库对象的地址
int state = sqlite3_open([filePath UTF8String], &db);
if (state != SQLITE_OK) { // 状态码
NSLog(@"数据库打开失败");
return nil;
}
// 数据库打开成功了
// 4.在数据库里面创建储存数据的表(数据库的数据以表的形式来储存) 主键
NSString *createTableStr = @"create table if not exists classA(ID integer primary key,name text,phone text,age integer)"; // 本行字符串的代码一个字母都不能错
// 创建表的关键字 create table
// classA:表名
// primary key:主键
// integer:类型
// 5.使用SQL语句创建表
char *errmsg;
// 参数一:要对哪一个数据库进行操作
// 参数二:要对数据库做什么样的操作
// 参数三:系统预留参数
// 参数四:系统预留参数
// 为什么要用static?
// 因为要保证的数据对象之有一个
static sqlite3 *db = nil;
@implementation SQLManager
#pragma 打开数据库
+(sqlite3 *)openDB
{
// 一、数据库已经打开的情况
if (db) {
return db;
}
// 二、没有打开的情况
// 1.先创建一个(document)路径
NSString *docPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)objectAtIndex:0];
// 2.在docPath路径下面创建一个数据库路径
// 通常数据库文件都要以 .sqlite 结尾,这样用数据库的图形工具可以直接打开
NSString *filePath = [docPath stringByAppendingPathComponent:@"studentDB.sqlite"];
NSLog(@"filePath = %@",filePath);
// 3.在filePath路径下创建一个数据库文件 (所有SQLite的操作都是基于 C语言的接口)
// 参数一:数据库文件的路径
// 参数二:数据库对象的地址
int state = sqlite3_open([filePath UTF8String], &db);
if (state != SQLITE_OK) { // 状态码
NSLog(@"数据库打开失败");
return nil;
}
// 数据库打开成功了
// 4.在数据库里面创建储存数据的表(数据库的数据以表的形式来储存) 主键
NSString *createTableStr = @"create table if not exists classA(ID integer primary key,name text,phone text,age integer)"; // 本行字符串的代码一个字母都不能错
// 创建表的关键字 create table
// classA:表名
// primary key:主键
// integer:类型
// 5.使用SQL语句创建表
char *errmsg;
// 参数一:要对哪一个数据库进行操作
// 参数二:要对数据库做什么样的操作
// 参数三:系统预留参数
// 参数四:系统预留参数