蓝懿IOS学习SQL数据库

当前类中导入头文件

// 1、打开数据库

// 创建数据库文件所在路径字符串

NSString *path = @"/Users/Boris/Public/蓝懿第三期/Day31 - SQLite/test.db";

// 创建数据库指针, 先赋值为空, 稍后他会被赋值.

// 以防万一出现野指针, C语言的空是 NULL, ObjC的空是 nil

sqlite3 *db = NULL;

// 打开数据库, 并且把已经打开的数据库赋值给 db 这个指针.

// 第一个参数是数据库文件位置, 第二个参数是一个指针, 一个指向指针类型变量的指针

// 之所以用这种 指针的指针 的方式来创建对象, 是因为该函数返回值有其它作用, 不能用来返回数据库变量. 但又有需求要这个函数"返回"多个值(执行状态、数据库变量实例), 所以只能通过传统返回值方式返回一个结果(执行状态), 再通过参数间接的"返回"另外一个结果(数据库变量实例).

int res_open = sqlite3_open(path.UTF8String, &db);

if (res_open == SQLITE_OK) {

// NSLog(@"成功打开数据库");

// 1、创建表

[self executeSQLite:db withSQL:@"create table if not exists t_newtable (id integer primary key autoincrement ,name text, age integer, math real)"];

// 2、插入数据

[self executeSQLite:db withSQL:@"insert into t_newtable (name, age, math) values (‘Tom‘, 10, 100)"];

// 3、查询数据

[self quaryData:db];

} else {

NSLog(@"打开数据库失败, 失败代码: %d", res_open);

}

}

- (void)executeSQLite:(sqlite3 *)db withSQL:(NSString *)sql {

// 新创建一个C语言的字符串变量指针, 准备稍后接收错误信息用.

char *errMsg = NULL;

/**

* 通过调用 sqlite3_exec() 函数来执行特定的 SQL 语句

* 第一个参数是: 给哪个数据库执行? 传一个数据库变量进去

* 第二个参数是: 执行什么? 传进去一个 SQL 语句的C语言字符串

* 第三个、第四个是回调, 用不上直接赋值"空" NULL (注意C语言与ObjC语言的"空"不一样, NULL、nil)

* 第五个参数是: 如果产生错误信息, 把错误信息保存到哪里去? 传入一个字符串指针.

* 返回值: 是一个整数, 表示当前函数执行结果, 例如执行成功或执行失败.

*/

int res_exec = sqlite3_exec(db, sql.UTF8String, NULL, NULL, &errMsg);

// 通过判断 sqlite3_exec() 的返回值来确认当前 SQL 语句是否执行成功

res_exec == SQLITE_OK ? /* NSLog(@"SQL 语句执行成功!") */ : NSLog(@"SQL 执行失败, 原因: %s", errMsg);

}

时间: 2024-08-02 11:03:10

蓝懿IOS学习SQL数据库的相关文章

#在蓝懿iOS学习的日子#

#在蓝懿iOS学习的日子#昨天我们学习了让uiimaag,学习了如何的插入图片,学习如何让它上下左右移动,其实就是加入按钮buttonon来控制图片的方向,还学习让图片在一定的范围内来回的移动,最后还制作了一个简易的游戏,我们都称之为简易的反射器,在下方设立一个按钮,发射一个图片,打击上方左右移动的image,为胜利,并以打中一次,来进行计分,难点就是两个图片的碰撞,设立的放h是这样的: //设置luobo与tu1障碍物的碰撞 //frame是指图片的矩形,进行碰撞 if (CGRectInte

蓝懿IOS学习图片编辑器

ios的学习在蓝懿另个月了,感觉学到了很多,这里的环境不错学习氛围也很好,刘国斌老师教了图片编辑,模拟美图秀秀,功能实现了边框,效果.滤镜,还有涂鸦. #pragma mark - Image picker controller 协议方法 - (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary<NSString *,id> *)info

#蓝懿ios学习的日子#2015年10月12鈤

已经是进入蓝懿基础训练营的第四天,今天是练习日,刘国斌老师让自己练习敲代码,大家都很积极,早早就来到教室开始时敲代码,我呢,就把这几天学习的都每个都创建了一个的项目,开始练习第一天,如何学习ioS是什么,比较与市场的其他编程,和其他系统的区别,了解职业发展的进程,最后,刘国斌老师不但给我们介绍了xcode,还教我们用Xcode做了个iOS的UI界面的一个UI类label的生成,还有生成界面是怎么样的(在后面的 图片会展示我的成果),我们大家没一人还练习了一遍,只要认真的看老师做一遍,会打字,就会

蓝懿IOS学习七大手势Touches

今天学习了ios编程里手势的方法及应用场景,屏幕页面中区分很多控件,有的控件可以有点击事件和用户直接交互,可以执行相应方法,如TextField,Button,UISEgmentControll等,但是静态lableUIImageView等就需要把交互开关打开,添加响应的手势才能实现交互. 刘国斌老师详细的对我们讲了七大手势,包括点击Touches,UIPanGestureRecognizer拖动,UILongPressGestureRecognizer长按手势,UIScreenEdgePanG

蓝懿IOS学习音频播放

// 准备歌曲数据 NSString *path = [[NSBundle mainBundle] pathForResource:@"Alan Walker - Fade.mp3" ofType:nil]; NSData *musicData = [NSData dataWithContentsOfFile:path]; // 初始化音频播放器(依据 NSData 初始化) NSError *errorMsg = nil; self.player = [[AVAudioPlayer 

蓝懿IOS学习TableCell之菜谱练习

今天刘国斌老师讲了如何通过路径获取文本,之后解析文本内容,最后显示到页面,利用了一天的时间详细教大家如何用xib类型的图形编辑自定义cell达到我们想要的cell标准.用了菜谱的demo演示如何编写,并且精了如何在网上获取图片. //   如果从网上请求数据,需要在info.plist配置文件里选择Open As再选择Soure Code修改添加一段代码 NSData *data=[NSData dataWithContentsOfURL:[NSURL URLWithString:menu.im

蓝懿IOS学习UICollectionView实战轮播图

今天刘国斌老师讲了关于JSON数据源的获取与利用,通过微博的实战项目进行练习,获取的数据都是网络上请求的真实数据,这种方式学起来很轻松,很容易理解. 刘国斌老师把今天做的练习题UICollectionView轮播图实现功能的方法步骤都下了下来,我们学起来很方便.   实现轮播图 效果的步骤: 1.创建layout (UICollectionViewFlowLayout) 2.设置layout的方向 默认上下 3.创建UICollectionView 4.设置delegate dataSource

#蓝懿iOSi学习的日子#2015年10月14日

#蓝懿iOSi学习的日子#已经进入了第五天的学习,当天已开始上课,一上来老师就给我们讲了NSString的使用,紧紧跟着l讲了字符串的拼接,一共讲了三种方法,紧接着做了前天的计算机的拓展,先是拉一个 label做了好多个button,label做了一个全局变量,button都做相应的tag,主要是button分为五个部分:数字.运算符.等号.AC.点,都做了相应的连线.第一,数字按钮,点击要显现文字:第二,点击运算符记录数字,声明按钮,点击数字按钮,可以得到什么:第三,做等号部分,生成第二个数字

蓝懿 iOS一周学习总结

在蓝懿学习已经一周多了. 时间如流水,在期间的日子慢慢冲刷掉了我的消极和懒惰.这些天来过得非常充实而充满张力.处于老师的富有创新的讲课方式和充满虚席热情的同学包围中,时间过得飞快. 在此回顾一下这些天的学习内容和学习感受. 课程从Objective-C开始.在老师介绍完计算机编程语言和基本的iOS基本常识后,正式进入OC的课程. 第一天,不仅认识了很多积极进取的同学.我们还接触到了如何控制label 让它显示指定的内容和Button 获取用户点击的事件的,虽然是简单的尝试,但是让我们对使用XCo