IOS开发-UI学习-sqlite数据库的操作

  sqlite是一个轻量级的数据库,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了,而且它的处理速度比Mysql、PostgreSQL这两款著名的数据库都还快,在ios和安卓app中常用来完成对数据进行离线缓存的处理,如新闻数据的离线缓存。

它的基本操作步骤是:

1、先加入sqlite开发库libsqlite3.dylib,

2、新建或打开数据库,

3、创建数据表,

4、插入数据,

5、查询数据并打印,

6、关闭数据库,

具体操作步骤如下:

1、导入sqlite数据库所需头文件:

导入完成后如图所示:

2、程序代码的编制:

  1. //
  2. // ViewController.m
  3. // sqlite手动创建数据库和表
  4. //
  5. // Created by mac on 16/4/12.
  6. // Copyright © 2016年 mzw. All rights reserved.
  7. //
  8.  
  9. #import "ViewController.h"
  10. #import "FMDatabase.h"
  11. @interface ViewController (){
  12. FMDatabase *mydb;
  13. NSString * idd;
  14. NSString * age;
  15. NSString * name;
  16. }
  17.  
  18. @end
  19.  
  20. @implementation ViewController
  21.  
  22. - (void)viewDidLoad {
  23. [super viewDidLoad];
  24.  
  25. // 创建一个数据库路径path
  26. NSString *path =[NSHomeDirectory() stringByAppendingString:@"/Documents/mydb.sqlite"];
  27.  
  28. // 根据创建好的路径path生成数据库
  29. mydb = [[FMDatabase alloc]initWithPath:path];
  30.  
  31. // 创建一个在数据库中创建表mytable的字符串
  32. NSString *tablecreate = @"create table if not exists mytable(id txt primary key,name text,age text)";
  33.  
  34. // 打开数据库
  35. if ([mydb open]) {
  36.  
  37. // 使用创建好的字符串新建表mytable
  38. BOOL createOK = [mydb executeUpdate:tablecreate];
  39.  
  40. if (createOK) {
  41. // 如果创建成果,打印创建成功的提示
  42. NSLog(@"数据库创建成功");
  43.  
  44. // 使用sql语句中的insert into语句往创建好的mytable中添加一条记录
  45. BOOL insertOK = [mydb executeUpdate:@"insert into mytable(id,age,name) values(?,?,?)",@"",@"",@"huangweiqiang"];
  46.  
  47. // 使用sql语句中的insert into语句往创建好的mytable中添加多条记录
  48. BOOL insertsOK = [mydb executeUpdate:@"insert into mytable(id,age,name) select '2','24','mazhongwei' union all select '3','21','xiangyiyao' union all select '4','34','zhanglong'"];
  49.  
  50. // 使用sql语句中的delete from语句删除符合条件的语句
  51. [mydb executeUpdate:@"delete from mytable where id = '4'"];
  52.  
  53. // 使用sql语句中的update更新表中的记录
  54. [mydb executeUpdate:@"update mytable set age = '100000' where id = '3'"];
  55.  
  56. // 使用sql语句中的查询语句查询符合条件的语句,返回结果为一个集合,使用next函数遍历结果并赋值给idd,age,name三个变量
  57. FMResultSet *rsset = [mydb executeQuery:@"select * from mytable where id = '3'"];
  58. while ([rsset next]) {
  59. idd = [rsset stringForColumn:@"id"];
  60. age = [rsset stringForColumn:@"age"];
  61. name = [rsset stringForColumn:@"name"];
  62. }
  63.  
  64. // 操作完成后关闭数据库
  65. [mydb close];
  66.  
  67. // 打印查询结果
  68. NSLog(@"%@_%@_%@",idd,age,name);
  69.  
  70. }else{
  71. // 如果创建失败,返回失败提示
  72. NSLog(@"数据库创建失败");
  73. }
  74. }
  75.  
  76. }
  77.  
  78. @end

IOS开发-UI学习-sqlite数据库的操作的更多相关文章

  1. 从C#到Objective-C,循序渐进学习苹果开发(7)--使用FMDB对Sqlite数据库进行操作

    本随笔系列主要介绍从一个Windows平台从事C#开发到Mac平台苹果开发的一系列感想和体验历程,本系列文章是在起步阶段逐步积累的,希望带给大家更好,更真实的转换历程体验.本篇主要开始介绍基于XCod ...

  2. 使用iOS原生sqlite3框架对sqlite数据库进行操作

    摘要: iOS中sqlite3框架可以很好的对sqlite数据库进行支持,通过面向对象的封装,可以更易于开发者使用. 使用iOS原生sqlite3框架对sqlite数据库进行操作 一.引言 sqlit ...

  3. iOS开发UI篇—Quartz2D使用(矩阵操作)

    iOS开发UI篇—Quartz2D使用(矩阵操作) 一.关于矩阵操作 1.画一个四边形 通过设置两个端点(长和宽)来完成一个四边形的绘制. 代码: - (void)drawRect:(CGRect)r ...

  4. 关于iOS开发的学习

    关于iOS开发的学习,打个比方就像把汽车分解:    最底层的原料有塑料,钢铁    再用这些底层的东西造出来发动机,座椅    最后再加上写螺丝,胶水等,把汽车就拼起来了 iOS基本都是英文的资料, ...

  5. iOS开发 数据缓存-数据库

    iOS中数据存储方式 Plist(NSArray\NSDictionary) Preference(偏好设置\NSUserDefaults) NSCoding (NSKeyedArchiver\NSk ...

  6. iOS开发UI篇—CAlayer(自定义layer)

    iOS开发UI篇—CAlayer(自定义layer) 一.第一种方式 1.简单说明 以前想要在view中画东西,需要自定义view,创建一个类与之关联,让这个类继承自UIView,然后重写它的Draw ...

  7. iOS开发UI篇—CALayer简介

    iOS开发UI篇—CALayer简介   一.简单介绍 在iOS中,你能看得见摸得着的东西基本上都是UIView,比如一个按钮.一个文本标签.一个文本输入框.一个图标等等,这些都是UIView. 其实 ...

  8. iOS开发UI篇—核心动画(UIView封装动画)

    iOS开发UI篇—核心动画(UIView封装动画) 一.UIView动画(首尾) 1.简单说明 UIKit直接将动画集成到UIView类中,当内部的一些属性发生改变时,UIView将为这些改变提供动画 ...

  9. iOS开发UI篇—核心动画简介

    转自:http://www.cnblogs.com/wendingding/p/3801036.html iOS开发UI篇—核心动画简介 一.简单介绍 Core Animation,中文翻译为核心动画 ...

随机推荐

  1. 学习笔记——状态模式State

    状态模式,主要是用于存在大量case判断的操作执行,同时这些case依赖于对象的状态,那么就可以将大量的case判断封装为独立的类. Context: -state,当前状态对象. ChangeSta ...

  2. 我终于有案例库啦(github 提供的)

    穷逼一个,一直在纠结要不要买个服务器什么的. 后来在慕课网看 git 教程时看到 github 可以帮你展示网页哟,于是我便有了这个案例库. 网址:https://foreverz133.github ...

  3. Pro/TOOLKIT入门教程汇总

    手把手教你开发Pro/TOOLKIT应用程序 手把手教你开发Pro/TOOLKIT应用程序(一) 手把手教你开发Pro/TOOLKIT应用程序(二) 手把手教你开发Pro/TOOLKIT应用程序(三) ...

  4. 第13章 Swing程序设计----常用事件监听器

    组件本身并不带有任何功能.这时需要为这些组件添加特定事件监听器. Swing中常用的两个事件监听器,即动作事件监听器和焦点事件监听器.

  5. Apache 实现ProxyPass转发URL到Tomcat并实现http自动转https【转载】

    转自 Apache 实现ProxyPass转发URL到Tomcat并实现http自动转https - OPEN 开发经验库http://www.open-open.com/lib/view/open1 ...

  6. postfix中recipient/client/sender/helo四者的区别<转载>

    postfix在main.cf中用下面四个做限制,那么这四者到底有什么区别? smtpd_recipient_restrictions smtpd_client_restrictions smtpd_ ...

  7. 转 图片缓存之内存缓存技术LruCache,软引用

    每当碰到一些大图片的时候,我们如果不对图片进行处理就会报OOM异常,这个问题曾经让我觉得很烦恼,后来终于得到了解决,那么现在就让我和大家一起分享一下吧.这篇博文要讲的图片缓存机制,我接触到的有两钟,一 ...

  8. public private proteccted区别

    public公共,加上这个修饰的类或属性,可以在同一个包或者别的包里面访问 private私有的,加上这个修饰的类或属性,只能在同类里访问,同包和别的包不能访问 protected保护,加上这个修饰的 ...

  9. GridView绑定DataKeyNames以及如何取这些值

    DataKeyNames='FID'   //前台绑定一个值GridView1.DataKeys[e.Row.RowIndex].Value.ToString;-------------------- ...

  10. ptrace

    http://zhangwenxin82.blog.163.com/blog/static/114595956201171510512459/