iOS学习笔记16-SQLite应用
/**
*
应用数据库步骤:
1,sqlite3_open:打开或者创建数据库并做连接操作
2,用sql语句,创建数据库
3,无返回值时,用exec语句操作执行数据库语句
4,有返回值时,用prepare语句查询函数,结果集遍历得到结果,遍历语句sqlite_step(stmt) == SQLITE_ROW
5,将记录中的字段解成字句 sqlite_column_XXX (结果集,字段的索引值)
**/
首先引用sqlite3数据库文件
取到文件夹路径
NSString *document = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)firstObject];
NSLog(@"%@",document);
要创建数据库的路径
NSString *dbFilePath = [document stringByAppendingString:@"/db.sqlite"];
/**
*创建数据库
**/
sqlite3 *db;//与底层数据库的连接
if (sqlite3_open([dbFilePath UTF8String], &db) == SQLITE_OK) {//打开数据库成功选择宏的名字//此处表示创建成功
NSLog(@"创建数据库成功");
}
/**
*在数据库里面添加数据
**/
NSString *createTableSql = @"create table Stu3(id integer primary key autoincrement,name text,password text)";//创建表的sq语句
if(sqlite3_exec(db, [createTableSql UTF8String], NULL, NULL, NULL) == SQLITE_OK)
{
NSLog(@"创建表成功");
}//执行创建表的语句
/**
*插入数据
**/
NSString *insertSql = @"insert into Stu3(name,password) values('hahah','567')";//插入数据的字符串
if ( sqlite3_exec(db, [insertSql UTF8String], NULL, NULL, NULL) == SQLITE_OK) {
NSLog(@"执行插入语句成功");
}
/**
*插入多条数据
用户名 dsn1-10
密码 六位数字
**/
for (int i = 0; i<10; i++) {
insertSql = [NSString stringWithFormat:@"insert into Stu3(name,password) values('dsn%d','%06d')",i+1,arc4random()%100000];
// NSLog(@"%@",insertSql);
if (sqlite3_exec(db, [insertSql UTF8String], NULL, NULL, NULL)==SQLITE_OK) {
NSLog(@"插入多条数据成功");
}
}
/**
*查询语句
**/
NSString *selectSql = @"select *from Stu3";
sqlite3_stmt *stmt;//第四个参数 返回结果集
sqlite3_prepare_v2(db, [selectSql UTF8String], -1, &stmt, NULL);//执行有返回值的SQL语句
//遍历结果集//把结果集一行行拿出来//宏表示如果行存在就一直做查询
while (sqlite3_step(stmt) == SQLITE_ROW) {
int stu3Id = sqlite3_column_int(stmt, 0);
char *stu3Name = (char *)sqlite3_column_text(stmt, 1);
char *stu3PassWord = (char *)sqlite3_column_text(stmt, 2);
NSLog(@"id=%d,name=%s,password=%s",stu3Id,stu3Name,stu3PassWord);
}
结果:
插入模型数据
// for (int i =0; i<10 ; i++) {
// NSString *addStr = @"insert into stu(username,userPass) values(?,?)";
//
// if (sqlite3_prepare_v2(db, [addStr UTF8String], -1, NULL, NULL)==SQLITE_OK) {
// sqlite3_bind_text(stmt, 1, [s.stuname UTF8string], -1, NULL);
//
// if (sqlite3_step(stmt)==SQLITE_DONE){
// NSLog(@"插入数据成功");
//
// }
// }
// }
转载于:https://www.cnblogs.com/adodo/p/5209227.html
iOS学习笔记16-SQLite应用相关推荐
- cocos2d-x学习笔记16:记录存储1:CCUserDefault
cocos2d-x学习笔记16:记录存储1:CCUserDefault 一.简述 CCUserDefalt作为NSUserDefalt类的cocos2d-x实现版本,承担了cocos2d-x引擎的记录 ...
- IOS学习笔记39——拍照、从相册选图并对图片进行裁剪
2013第一篇,大家新年快乐!感谢一直关注我博客的同学们,有你们的支持我才有动力越做越好!有阵子没写博客了,因为前阵子着实比较忙,没时间整理,今天主要实现一个小Demo,我们知道在Instagram或 ...
- OpenCV for Ios 学习笔记(4)-标记检测1
本文原始地址:OpenCV for Ios 学习笔记(4)-标记检测1 简单的标记经常是以白色块和黑色块构成的规则图形.因为我们预先知道这些因素,所以我们可以很容易检测标记. 如图: 首先,我们需要找 ...
- IOS学习笔记(九)之UIAlertView(警告视图)和UIActionSheet(操作表视图)基本概念和使用方法...
IOS学习笔记(九)之UIAlertView(警告视图)和UIActionSheet(操作表视图)基本概念和使用方法 Author:hmjiangqq Email:jiangqqlmj@163.com ...
- IOS学习笔记(四)之UITextField和UITextView控件学习
IOS学习笔记(四)之UITextField和UITextView控件学习(博客地址:http://blog.csdn.net/developer_jiangqq) Author:hmjiangqq ...
- SpringBoot学习笔记(16)----SpringBoot整合Swagger2
Swagger 是一个规范和完整的框架,用于生成,描述,调用和可视化RESTful风格的web服务 http://swagger.io Springfox的前身是swagger-springmvc,是 ...
- iOS学习笔记-自己动手写RESideMenu
代码地址如下: http://www.demodashi.com/demo/11683.html 很多app都实现了类似RESideMenu的效果,RESideMenu是Github上面一个stars ...
- iOS学习笔记-地图MapKit入门
代码地址如下: http://www.demodashi.com/demo/11682.html 这篇文章还是翻译自raywenderlich,用Objective-C改写了代码.没有逐字翻译,如有错 ...
- iOS学习笔记-自定义过渡动画
代码地址如下: http://www.demodashi.com/demo/11678.html 这篇笔记翻译自raywenderlick网站的过渡动画的一篇文章,原文用的swift,由于考虑到swi ...
- IOS学习笔记07---C语言函数-scanf函数
2013/8/7 IOS学习笔记07---C语言函数-scanf函数 ------------------------------ qq交流群:创梦技术交流群:251572072 ...
最新文章
- 坦白讲!90%的数据分析师都不合格!!
- 一个程序员眼中的好UI
- 【自动驾驶】相机标定 疑问总结
- Java学习中的不解
- 【翻译】Windows下文件的命名
- python进阶路线 知乎_Python自学路线图之Python进阶
- Vue实现户籍管理系统户籍信息的添加与删除
- 做一名「技术掮客」去变现自己的技术
- linux查看网卡是down还是up,查看Linux下网卡链接状态(up仍是down)?
- DPI和DFI带宽管理技术分析
- hdu 2881 Jack's struggle(DP)
- t-star腾讯安全高校挑战赛2022 writeup
- 笔记-首次参加数据挖掘比赛摸索的经验(赛题为CCF-BDCI2017企业经营退出风险预测)
- Android中模拟点击软件的实现原理探究
- 分享几个Vue案例供大家一起学习
- java计算机毕业设计社区生活超市管理系统源程序+mysql+系统+lw文档+远程调试
- WooCommerce Product Feed指南 – Google Shopping和Facebook[2022]
- 微信相框plus详细体验
- 中国聚客网[http://www.crossgo.com]正式开通拉!
- Datacamp 学习第一周
热门文章
- LAMP:用yum安装
- android 地图服务开发 INSTALL_FAILED_MISSING_SHARED_LIBRARY 错误解决
- 用boolalpha输出true或false的问题
- Oracle函数列表速查
- 如果连接远程的mysql数据库连不上,可用下面的方法试下
- 计算机成绩表用函数怎么做,题用Excel函数以计算机成绩为依据计算出等次,怎么用函数IF 设定三个分类,如》90 为优秀 79~89为良好其余合格...
- svchost服务(DLL服务)
- hdu4604 不错的子序列问题
- 【SeeMusic】创建 SeeMusic 工程并编辑相关内容 ( 创建工程 | 导入 MIDI 文件 | 导入音频 | 导入视频 )
- 【Android 组件化】路由组件 ( 注解处理器参数选项设置 )