ios:SQLite增删改查

#import <sqlite3.h>
#import “Student.h”

@interface DataManage : NSObject{
sqlite3 *db;
}
//单利方法建立数据库
+(DataManage *)shareManage;

//打开数据库

  • (void)open;
    //关闭数据库
  • (void)close;
    //创建表
  • (void)create;
    //插入数据
  • (void)insert:(Student *)student;
    //更新数据
  • (void)update:(Student *)student;
    //删除数据
  • (void)deleteData:(NSString *)name;
    //查询数据
  • (NSMutableArray *)select;

// 单例
+(DataManage *)shareManage{
//创建静态变量
static DataManage *manage;
if (!manage) {
manage = [DataManage new];
}
return manage;
}
//打开数据库

  • (void)open{
    //创建路径
    NSString *docum = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)firstObject];
    NSString *sqlitepath = [docum stringByAppendingPathComponent:@“1606D.sqlite”];
    NSLog(@"++++%@",sqlitepath);
    //打开
    int result = sqlite3_open(sqlitepath.UTF8String, &db);
    //判断是否打开成功
    if (result == SQLITE_OK) {
    NSLog(@“数据库打开成功”);
    }else{
    NSLog(@“数据库打开失败”);
    }
    }
    //关闭数据库
    -(void)close{
    //关闭
    int result = sqlite3_close(db);
    //判断是否关闭成功
    if (result == SQLITE_OK) {
    NSLog(@“数据库关闭成功”);
    }else{
    NSLog(@“数据库关闭失败”);
    }
    }

//创建

  • (void)create{
    //创建SQL语句
    NSString *sqltring = @“create table if not exists student (name text, coverSmall text, programName text)”;
    //执行语句
    char *error = nil;
    sqlite3_exec(db, sqltring.UTF8String, nil, nil, &error);
    if (error == nil) {
    NSLog(@“创建表格成功”);
    }else{
    NSLog(@“创建表格失败”);
    }
    }

//插入

  • (void)insert:(Student *)student{
    NSString *sqltring = [NSString stringWithFormat:@“insert into student (name , coverSmall , programName) values (’%@’,’%@’,’%@’)”,student.name,student.coverSmall,student.programName];
    //执行语句
    char *error = nil;
    sqlite3_exec(db, sqltring.UTF8String, nil, nil, &error);
    if (error == nil) {
    NSLog(@“插入数据成功”);
    NSLog(@"%@",sqltring);
    }else{
    NSLog(@“插入数据失败”);
    }
    }

//更新

  • (void)update:(Student *)student{
    NSString *sqltring = [NSString stringWithFormat:@“update student set name = ‘%@’, coverSmall = ‘%@’, programName = ‘%@’ where name = ‘%@’”,student.name,student.coverSmall,student.programName,student.name];
    //执行语句
    char *error = nil;
    sqlite3_exec(db, sqltring.UTF8String, nil, nil, &error);
    if (error == nil) {
    NSLog(@“更新数据成功”);
    }else{
    NSLog(@“更新数据失败”);
    }
    }
    //删除
  • (void)deleteData:(NSString *)name{
    NSString *sqltring = [NSString stringWithFormat:@“delete from student where name = ‘%@’”,name];
    //执行语句
    char *error = nil;
    sqlite3_exec(db, sqltring.UTF8String, nil, nil, &error);
    if (error == nil) {
    NSLog(@“删除数据成功”);
    }else{
    NSLog(@“删除数据失败”);
    }
    }

//查询
-(NSMutableArray *)select{
NSString *sqltring = @“select * from student”;
//预编译指针
sqlite3_stmt *stmt = nil;
//准备语句
sqlite3_prepare(db, sqltring.UTF8String, -1, &stmt, nil);
//存放查询出来的数据
NSMutableArray *array = [NSMutableArray new];

//单步执行语句
while (sqlite3_step(stmt) == SQLITE_ROW) {
    Student *studen = [Student new];
    //获取第一例
    const unsigned char *name = sqlite3_column_text(stmt, 0);
    NSString *nameNsstring = [NSString stringWithUTF8String:(const char *)name];
    studen.name = nameNsstring;
    
    //获取第二例
    const unsigned char *coverSmall = sqlite3_column_text(stmt, 1);
    NSString *ageNsstring1 = [NSString stringWithUTF8String:(const char *)coverSmall];
    studen.coverSmall = ageNsstring1;
    
    //获取第三例
    const unsigned char *programName = sqlite3_column_text(stmt, 2);
    NSString *ageNsstring2 = [NSString stringWithUTF8String:(const char *)programName];
    studen.programName = ageNsstring2;
    
    [array addObject:studen];
    NSLog(@"++++++++++++%@",array);
}
//释放 数据库管理指针
sqlite3_finalize(stmt);

return array;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值