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

  • (void)open{
    //创建路径
    NSString *docum = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)first ];
    NSString *sqlitepath = [docum stringByAppendingPathComponent:@“1606D.sqlite”];
    //打开
    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, age 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 , age) values (’%@’,’%@’)”,student.name,student.age];
    //执行语句
    char *error = nil;
    sqlite3_exec(db, sqltring.UTF8String, nil, nil, &error);
    if (error == nil) {
    NSLog(@“插入数据成功”);
    }else{
    NSLog(@“插入数据失败”);
    }
    }

//更新

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

//删除

  • (void)deleteData:(NSString *)SID{
    NSString *sqltring = [NSString stringWithFormat:@“delete from student where name = ‘%@’”,SID];
    //执行语句
    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 *age = sqlite3_column_text(stmt, 1);
    NSString *ageNsstring = [NSString stringWithUTF8String:(const char *)age];
    studen.age = ageNsstring;
    
    [array add :studen];
}
//释放 数据库管理指针
sqlite3_finalize(stmt);

return array;

}

收藏 打印