• oc中数据库使用详细解释(一)


    ////以下为定义为DB.h的单例.继承自NSObject,引入sqlite3头文件.引入前请在框架Framework中引入sqlite3.0的框架  
    #import <Foundation/Foundation.h>
    
    #import <sqlite3.h>
    
    @interface DB : NSObject
    
    //打开数据库,并返回数据库的指针
    + (sqlite3 *)open;
    
    //关闭数据库
    + (void)close;
    
    @end
    
    #import "DB.h"
    
    @implementation DB
    
    //实际开发中 对数据库的操作会比较多,为了避免不停的打开和关闭数据库, 我们把数据库指针做成单例,如果单例有值,直接返回,如果单例没值,创建一个。
    #define kSQLFileName @"StudentManage.sqlite"
    static sqlite3 *db = nil;
    
    + (sqlite3 *)open
    {
        if (db != nil) {//如果数据库已经打开,无需再次打开
            return db;
        }
        
        //Documents文件夹路径
        //如果数据库在docments文件下还没有创建.
        //第一步先通过NSSearchPathForDirectoriesInDomains找到docments文件夹路径
        NSString *docPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)objectAtIndex:0];
        //数据库文件 路径
        NSString *sqlFilePath = [docPath stringByAppendingPathComponent:kSQLFileName];
        NSLog(@"%@",sqlFilePath);
        //NSFileManager 类型的实例对象.用来检测给定路径有木有文件
        NSFileManager *fm = [NSFileManager defaultManager];
        if ([fm fileExistsAtPath:sqlFilePath] == NO) {//如果给定的路径没有文件
            NSString *bundleSQLFilePath = [[NSBundle mainBundle] pathForResource:kSQLFileName ofType:nil];
            //把包里面的数据库文件 拷贝到 Documents下
            [fm copyItemAtPath:bundleSQLFilePath toPath:sqlFilePath error:nil];
        }
        sqlite3_open([sqlFilePath UTF8String], &db);
        return db;
    }
    
    
    + (void)close
    {
        sqlite3_close(db);
        db = nil;
    }
    



  • 相关阅读:
    Large repunit factors (Project Euler 132)
    有向图 加最少的边 成为强连通分量的证明 poj 1236 hdu 2767
    ZJU 17th 校赛
    2015-2016ACM-ICPC NEER northern-subregional-contest C Concatenation
    BestCoder Round #93 ABC
    Codeforces Round #404 (Div. 2) DE
    Fibonacci数列的幂和 zoj 3774
    bitset在acm中的应用
    Codeforces Round #398 (Div. 2) BCD
    Hook length formula 学习笔记 UVALive 6625
  • 原文地址:https://www.cnblogs.com/xukunhenwuliao/p/3576224.html
Copyright © 2020-2023  润新知