/**

*

应用数据库步骤:

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应用相关推荐

  1. cocos2d-x学习笔记16:记录存储1:CCUserDefault

    cocos2d-x学习笔记16:记录存储1:CCUserDefault 一.简述 CCUserDefalt作为NSUserDefalt类的cocos2d-x实现版本,承担了cocos2d-x引擎的记录 ...

  2. IOS学习笔记39——拍照、从相册选图并对图片进行裁剪

    2013第一篇,大家新年快乐!感谢一直关注我博客的同学们,有你们的支持我才有动力越做越好!有阵子没写博客了,因为前阵子着实比较忙,没时间整理,今天主要实现一个小Demo,我们知道在Instagram或 ...

  3. OpenCV for Ios 学习笔记(4)-标记检测1

    本文原始地址:OpenCV for Ios 学习笔记(4)-标记检测1 简单的标记经常是以白色块和黑色块构成的规则图形.因为我们预先知道这些因素,所以我们可以很容易检测标记. 如图: 首先,我们需要找 ...

  4. IOS学习笔记(九)之UIAlertView(警告视图)和UIActionSheet(操作表视图)基本概念和使用方法...

    IOS学习笔记(九)之UIAlertView(警告视图)和UIActionSheet(操作表视图)基本概念和使用方法 Author:hmjiangqq Email:jiangqqlmj@163.com ...

  5. IOS学习笔记(四)之UITextField和UITextView控件学习

    IOS学习笔记(四)之UITextField和UITextView控件学习(博客地址:http://blog.csdn.net/developer_jiangqq) Author:hmjiangqq ...

  6. SpringBoot学习笔记(16)----SpringBoot整合Swagger2

    Swagger 是一个规范和完整的框架,用于生成,描述,调用和可视化RESTful风格的web服务 http://swagger.io Springfox的前身是swagger-springmvc,是 ...

  7. iOS学习笔记-自己动手写RESideMenu

    代码地址如下: http://www.demodashi.com/demo/11683.html 很多app都实现了类似RESideMenu的效果,RESideMenu是Github上面一个stars ...

  8. iOS学习笔记-地图MapKit入门

    代码地址如下: http://www.demodashi.com/demo/11682.html 这篇文章还是翻译自raywenderlich,用Objective-C改写了代码.没有逐字翻译,如有错 ...

  9. iOS学习笔记-自定义过渡动画

    代码地址如下: http://www.demodashi.com/demo/11678.html 这篇笔记翻译自raywenderlick网站的过渡动画的一篇文章,原文用的swift,由于考虑到swi ...

  10. IOS学习笔记07---C语言函数-scanf函数

    2013/8/7 IOS学习笔记07---C语言函数-scanf函数 ------------------------------ qq交流群:创梦技术交流群:251572072            ...

最新文章

  1. 坦白讲!90%的数据分析师都不合格!!
  2. 一个程序员眼中的好UI
  3. 【自动驾驶】相机标定 疑问总结
  4. Java学习中的不解
  5. 【翻译】Windows下文件的命名
  6. python进阶路线 知乎_Python自学路线图之Python进阶
  7. Vue实现户籍管理系统户籍信息的添加与删除
  8. 做一名「技术掮客」去变现自己的技术
  9. linux查看网卡是down还是up,查看Linux下网卡链接状态(up仍是down)?
  10. DPI和DFI带宽管理技术分析
  11. hdu 2881 Jack's struggle(DP)
  12. t-star腾讯安全高校挑战赛2022 writeup
  13. 笔记-首次参加数据挖掘比赛摸索的经验(赛题为CCF-BDCI2017企业经营退出风险预测)
  14. Android中模拟点击软件的实现原理探究
  15. 分享几个Vue案例供大家一起学习
  16. java计算机毕业设计社区生活超市管理系统源程序+mysql+系统+lw文档+远程调试
  17. WooCommerce Product Feed指南 – Google Shopping和Facebook[2022]
  18. 微信相框plus详细体验
  19. 中国聚客网[http://www.crossgo.com]正式开通拉!
  20. Datacamp 学习第一周

热门文章

  1. LAMP:用yum安装
  2. android 地图服务开发 INSTALL_FAILED_MISSING_SHARED_LIBRARY 错误解决
  3. 用boolalpha输出true或false的问题
  4. Oracle函数列表速查
  5. 如果连接远程的mysql数据库连不上,可用下面的方法试下
  6. 计算机成绩表用函数怎么做,题用Excel函数以计算机成绩为依据计算出等次,怎么用函数IF 设定三个分类,如》90 为优秀 79~89为良好其余合格...
  7. svchost服务(DLL服务)
  8. hdu4604 不错的子序列问题
  9. 【SeeMusic】创建 SeeMusic 工程并编辑相关内容 ( 创建工程 | 导入 MIDI 文件 | 导入音频 | 导入视频 )
  10. 【Android 组件化】路由组件 ( 注解处理器参数选项设置 )