oc读取mysql数据库数据完整代码?

oc读取mysql数据库数据完整代码?,第1张

给你个例子供你参考

<span style="font-size:14px">#import "StudentDataBase.h"  

#import "DB.h"  

#import "StudentModel.h"  

@implementation StudentDataBase  

//查找所有数据  

+(NSArray *)findAll{  

    sqlite3 * db = [DB DBOpen] //调用DB open方法  获取数据库指针  

    sqlite3_stmt * stmt//镜像  copy出来的镜像  不影响sqlite里的内容  

      

    int result = sqlite3_prepare_v2(db, "select * from student", -1, &stmt, Nil)  

    //-1是不限制字符串的长度  &stmt是往stmt里面赋值  Const char **pzTail是设置前面哪个是不用的  

      

    NSMutableArray * peopels = [NSMutableArray array]      //制作容器  要装数据  

      

    //判断结果  0进判断    result==0表示正确  

    if (SQLITE_OK == result) {  

          

        //判断是否有下一行  

        while (sqlite3_step(stmt) == SQLITE_ROW) {  

            //int iCol 是第几个  

            int stuId = sqlite3_column_int(stmt, 0)                        //取一行中的一个 int是值的类型  

            const unsigned charchar * stuName  = sqlite3_column_text(stmt, 1)  //取一行中的一个 text是值的类型  

            const unsigned charchar * stuSex = sqlite3_column_text(stmt, 2)    //取一行中的一个 text是值的类型  

            float stuScore = sqlite3_column_double(stmt, 3)                //取一行中的一个 double是值的类型  

              

            //转换  

            NSString * currentName = [NSString stringWithUTF8String:(const charchar *)stuName]  

            NSString * currentSex = [NSString stringWithUTF8String:(const  charchar *)stuSex]  

              

              

            StudentModel * student = [StudentModel studentModelWithId:stuId name:currentName sex:currentSex score:stuScore]  

            //将model中内容 添加到  之前的容器 数组  

            [peopels addObject:student]  

        }  

          

        sqlite3_finalize(stmt)//关闭镜像  

        return peopels//将这个装有数据的数组  返回  

    }else{  

        sqlite3_finalize(stmt)  

        return [NSArray array]  //如果没进入if  返回一个空数组  

    }  

      

}  

  

//查找单个数据  

+(StudentModel *)findPeopleWith:(NSInteger )stuId{  

    sqlite3 * db = [DB DBOpen]  

    sqlite3_stmt * stmt  

    int result = sqlite3_prepare_v2(db, "select stuName,stuId,stuSex,stuScore from student where stuId=?", -1, &stmt, Nil)  

    sqlite3_bind_int(stmt, 1, stuId)//  第一个int是第几个问好?  第二个int  是绑定的内容  绑定问好  

      

    if (SQLITE_OK == result) {  

        if (sqlite3_step(stmt) == SQLITE_ROW) {  

              

              

            const unsigned charchar * stuName = sqlite3_column_text(stmt, 0)  

            int stuId = sqlite3_column_int(stmt, 1)  

            const unsigned charchar * stuSex = sqlite3_column_text(stmt, 2)  

            float stuScore = sqlite3_column_double(stmt, 3)  

              

              

            NSString * currentName = [NSString stringWithUTF8String:(const charchar *)stuName]  

            NSString * currentSex = [NSString stringWithUTF8String:(const charchar *)stuSex]  

              

            StudentModel * student = [StudentModel studentModelWithId:stuId name:currentName sex:currentSex score:stuScore]  

            sqlite3_finalize(stmt)  

            NSLog(@"000")  

            return student  

        }else{  

            NSLog(@"11111")  

            return nil  

        }  

    }else{  

        NSLog(@"222222")  

        sqlite3_finalize(stmt)  

        return nil  

    }  

}  

//插入数据  

+(void)insertIntoModel:(StudentModel *)model{  

    sqlite3 * db = [DB DBOpen]  

    sqlite3_stmt * stmt  

    int result = sqlite3_prepare_v2(db, "insert into student values(?,?,?,?)", -1, &stmt, Nil)  

    sqlite3_bind_int(stmt, 1, model.stuId)  

    sqlite3_bind_text(stmt, 2, [model.stuName UTF8String], -1, Nil)  

    sqlite3_bind_text(stmt, 3, [model.stuSex UTF8String], -1, nil)  

    sqlite3_bind_double(stmt, 4, model.stuScore)  

      

    if (SQLITE_OK == result) {  

        if (sqlite3_step(stmt) == SQLITE_DONE) {  

            NSLog(@"添加成功")  

            sqlite3_finalize(stmt)  

            return  

        }else{  

            NSLog(@"添加失败")  

            sqlite3_finalize(stmt)  

            return  

        }  

    }else{  

        NSLog(@"111")  

        sqlite3_finalize(stmt)  

  

        return  

    }  

}  

//更新数据  

+(void)updateStuName:(NSString *)name stuSex:(NSString *)sex stuScore:(CGFloat)score stuId:(NSInteger)stuid{  

    sqlite3 * db = [DB DBOpen]  

    sqlite3_stmt * stmt  

    int result = sqlite3_prepare_v2(db, "update student set stuName=?,stuSex=?,stuScore=? where stuId = ?", -1, &stmt, Nil)  

    sqlite3_bind_int(stmt, 4, stuid)  

    sqlite3_bind_text(stmt, 1, [name UTF8String], -1, Nil)  

    sqlite3_bind_text(stmt, 2, [sex UTF8String], -1, nil)  

    sqlite3_bind_double(stmt, 3, score)  

    if (SQLITE_OK == result) {  

        if (sqlite3_step(stmt) == SQLITE_DONE) {  

            NSLog(@"更新成功")  

            sqlite3_finalize(stmt)  

            return  

        }else{  

            NSLog(@"更新失败")  

            sqlite3_finalize(stmt)  

  

        }  

    }else{  

        NSLog(@"shibai")  

        sqlite3_finalize(stmt)  

  

    }  

}  

  

//删除数据  

+(void)deleteModelStuId:(NSInteger)stuid{  

    sqlite3 * db = [DB DBOpen]  

    sqlite3_stmt * stmt  

    int relust = sqlite3_prepare_v2(db, "delete from student where stuid= ?", -1, &stmt, nil)  

    sqlite3_bind_int(stmt, 1, stuid)  

    if (SQLITE_OK == relust) {  

        //step 截段  

        if (sqlite3_step(stmt) == SQLITE_DONE) {  

            NSLog(@"删除成功")  

            sqlite3_finalize(stmt)  

            return  

        }else{  

            NSLog(@"删除失败")  

            sqlite3_finalize(stmt)  

            return  

        }  

    }else{  

        NSLog(@"删除失败11")  

        sqlite3_finalize(stmt)  

        return  

          

    }  

}  

  

@end  

</span>

IOS中的沙盒机制(SandBox)是一种安全体系,它规定了应用程序只能在为该应用创建的文件夹内读取文件,不可以访问其他地方的内容。所有的非代码文件都保存在这个地方,比如图片、声音、属性列表和文本文件等。

1.每个应用程序都在自己的沙盒内

2.不能随意跨越自己的沙盒去访问别的应用程序沙盒的内容

3.应用程序向外请求或接收数据都需要经过权限认证

查看模拟器的沙盒文件夹在Mac电脑上的存储位置,首先,这个文件夹是被隐藏的,所以要先将这些文件显示出来,打开命令行:

显示Mac隐藏文件的命令:defaults write com.apple.finder AppleShowAllFiles -bool true

隐藏Mac隐藏文件的命令:defaults write com.apple.finder AppleShowAllFiles -bool false

然后重新启动Finder,点击屏幕左上角苹果标志——强制退出——选择Finder然后点击重新启动,这个时候在重新打开Finder就可以看到被隐藏的文件了。

还有一种比较简单的办法就是直接点击Finder图标右键——前往文件夹——输入/Users/your username/Library/Application Support/iPhone Simulator/ ,然后确认就可以了。your username是你本机的用户名


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9951326.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-03
下一篇 2023-05-03

发表评论

登录后才能评论

评论列表(0条)

保存