使用SQL语句 进行数据持久化

本文介绍了如何在iOS应用中使用SQLite进行数据持久化操作,包括打开和关闭数据库、创建表、插入、更新和查询数据。通过创建SQLiteManager单例类,实现了数据库的管理,包括创建表、插入学生信息、更新学生年龄、删除指定条件的学生数据以及查询数据等。
摘要由CSDN通过智能技术生成

//使用SQL 需要先引入 sqlite3.h 头文件  7.0之前的版本和之后的版本引入的文件 后缀名不一样 7.0版本是libsqlite3.0.tbd 之前的版本都是libsqlite3.0.dylib


#import <sqlite3.h>

#import <Foundation/Foundation.h>

@interface SQLiteManager : NSObject

//使用SQLite数据库步骤
//1.引入 sqlite3.0框架
//2.在数据库操作类里 引入<sqlite3.h>头文件

//注意:咱们使用的函数都在这个头文件中

//创建一个单例类 使用SQl语句

//

+ (SQLiteManager *)shareManager{
    //静态区指针
    static SQLiteManager *manager = nil;
    if (manager == nil) {
        manager = [[SQLiteManager alloc]init];
        
        //调用创建表的方法
        
        [manager createTable];
        
    }
    //不需要手动释放 程序运行结束 自动释放
    return manager;
}



//需要在静态区定义一个指针指向数据库(让这个指针指向的对象 从程序开始到结束一直存在 程序结束后 被系统自动释放)

//手敲 sqlite 的时候 一开始不出提示 多来两次 就可以了

//创建一个空的sql指针

static sqlite3 *db = nil;

//打开数据库

- (sqlite3 *)openDB{
    //判断数据库 是否存在 如果存在直接返回
    //不存在 则创建 并打开
    if (db != nil) {
        return db;
    }else{
    
        NSString *documentPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)lastObject];
        //拼接数据库文件路径(拼接的数据库文件的名字)
        NSString *dbPath = [documentPath stringByAppendingPathComponent:@"/Students.sqlite"];
        NSLog(@"%@",dbPath);
    //创建 或者 打开 数据库
    //<#const void *filename#> 参数1  文件的路径(需要把OC的字符串 转化成C语言的)
        // dbPath.UTF8String 把OC的 转化成 C语言的
    //<#sqlite3 **ppDb#> 参数2 数据库的地址
        
        //接收一下返回值 判断 是否打开成功
      int result = sqlite3_open(dbPath.UTF8String,&db);
        //可以查表得到错误
        if (result == SQLITE_OK) {
            NSLog(@"OK");
        } else {
            NSLog(@"打开失败");
            NSLog(@"%d",result);

        }
    }
    
    return db;
}

//关闭数据库

- (void)closeDB{
    
    
    
  int result = sqlite3_close(db);
    //判断是否关闭成功
    if (result == SQLITE_OK) {

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值