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

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
26 //    创建一个数据库路径path
27     NSString *path =[NSHomeDirectory() stringByAppendingString:@"/Documents/mydb.sqlite"];
28
29 //    根据创建好的路径path生成数据库
30     mydb = [[FMDatabase alloc]initWithPath:path];
31
32 //    创建一个在数据库中创建表mytable的字符串
33     NSString *tablecreate = @"create table if not exists mytable(id txt primary key,name text,age text)";
34
35 //    打开数据库
36     if ([mydb open]) {
37
38 //        使用创建好的字符串新建表mytable
39         BOOL createOK = [mydb executeUpdate:tablecreate];
40
41
42         if (createOK) {
43 //            如果创建成果,打印创建成功的提示
44             NSLog(@"数据库创建成功");
45
46 //            使用sql语句中的insert into语句往创建好的mytable中添加一条记录
47             BOOL insertOK = [mydb executeUpdate:@"insert into mytable(id,age,name) values(?,?,?)",@"1",@"23",@"huangweiqiang"];
48
49 //            使用sql语句中的insert into语句往创建好的mytable中添加多条记录
50             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‘"];
51
52 //             使用sql语句中的delete from语句删除符合条件的语句
53             [mydb executeUpdate:@"delete from mytable where id = ‘4‘"];
54
55 //             使用sql语句中的update更新表中的记录
56             [mydb executeUpdate:@"update mytable set age = ‘100000‘ where id = ‘3‘"];
57
58 //              使用sql语句中的查询语句查询符合条件的语句,返回结果为一个集合,使用next函数遍历结果并赋值给idd,age,name三个变量
59             FMResultSet *rsset = [mydb executeQuery:@"select * from mytable where id = ‘3‘"];
60             while ([rsset next]) {
61                 idd  = [rsset stringForColumn:@"id"];
62                 age  = [rsset stringForColumn:@"age"];
63                 name = [rsset stringForColumn:@"name"];
64             }
65
66 //           操作完成后关闭数据库
67             [mydb close];
68
69 //            打印查询结果
70             NSLog(@"%@_%@_%@",idd,age,name);
71
72         }else{
73 //            如果创建失败,返回失败提示
74             NSLog(@"数据库创建失败");
75         }
76     }
77
78 }
79
80
81
82 @end
时间: 2024-10-13 17:09:24

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

学习IOS开发UI篇--UI知识点总结(四) UITabelView/UITableViewCell

UITabelView:常用属性 @property (nonatomic)          CGFloat    rowHeight;             // will return the default value if unset @property (nonatomic)          CGFloat     sectionHeaderHeight;   // will return the default value if unset @property (nonatom

学习IOS开发UI篇--UI知识点总结(三) UIScrollView/UIPageControl/NSTimer

UIScrollView:常用属性 @property(nonatomic)   UIEdgeInsets     contentInset;               // default UIEdgeInsetsZero. add additional scroll area around content @property(nonatomic,getter=isPagingEnabled) BOOL   pagingEnabled;     // default NO. if YES,

iOS开发UI篇—自定义瀑布流控件(蘑菇街数据刷新操作)

iOS开发UI篇—自定义瀑布流控件(蘑菇街数据刷新操作) 一.简单说明 使用数据刷新框架: 该框架提供了两种刷新的方法,一个是使用block回调(存在循环引用问题,_ _weak),一个是使用调用. 问题:在进行下拉刷新之前,应该要清空之前的所有数据(在刷新数据这个方法中). 移除正在显示的cell: (1)把字典中的所有的值,都从屏幕上移除 (2)清除字典中的所有元素 (3)清除cell的frame,每个位置的cell的frame都要重新计算 (4)清除可复用的缓存池. 该部分的代码如下: 1

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

iOS开发UI篇-Quartz2D使用(矩阵操作) 一.关于矩阵操作 1.画一个四边形 通过设置两个端点(长和宽)来完成一个四边形的绘制. 代码: 1 - (void)drawRect:(CGRect)rect 2 { 3 //画四边形 4 //获取图形上下文 5 CGContextRef ctx=UIGraphicsGetCurrentContext(); 6 //绘图 7 CGContextAddRect(ctx, CGRectMake(20, 50, 100, 100)); 8 //渲染

学习IOS开发UI篇--UITableView/数据模型嵌套/UITableViewCell/Cell的重用

1.UITableView ================================================== UITableView有两种格式:group和plain 2.UITableView如何展示数据 ================================================== UITableView需要一个数据源(dataSource)来显示数据 凡是遵守UITableViewDataSource协议的OC对象,都可以是UITableView的

学习IOS开发UI篇--数据存储

iOS应用数据存储的常用方式 1.lXML属性列表(plist)归档 2.lPreference(偏好设置) 3.lNSKeyedArchiver归档(NSCoding) 4.lSQLite3 5.lCore Data Documents:保存应用运行时生成的需要持久化的数据,iTunes同步设备时会备份该目录.例如,游戏应用可将游戏存档保存在该目录 tmp:保存应用运行时所需的临时数据,使用完毕后再将相应的文件从该目录删除.应用没有运行时,系统也可能会清除该目录下的文件.iTunes同步设备时

学习IOS开发UI篇--UIScrollView/delegate/pagecontrol/UITimer

1.UIscrollView的属性 ================================================== 1.1 常见属性 @property(nonatomic) CGPoint contentOffset; 这个属性用来表示UIScrollView滚动的位置 @property(nonatomic) CGSize contentSize; 这个属性用来表示UIScrollView内容的尺寸,滚动范围(能滚多远) @property(nonatomic) UIE

学习IOS开发UI篇--UI知识点总结(一) UIButton/UITextField

UIkit框架下的几个基本控件,UIButton,UITextField,UILabel,UIImageView,UIScrollView,UITableView,UITableViewCell,UIPageControl; 他们的继承关系,UILabel,UIImageView,UIScrollView,UITableViewCell,直接继承自UIView; UIButton,UITextField,UIPageControl,继承自UIControl; UIControl继承自UIView

学习IOS开发UI篇--UIAlertView/UIActionSheet

UIAlertView,UIActionSheet都是系统的弹框 UIAlertView:创建方法 - (id)initWithTitle:(NSString *)title message:(NSString *)message delegate:(id /*<UIAlertViewDelegate>*/)delegate cancelButtonTitle:(NSString *)cancelButtonTitle otherButtonTitles:(NSString *)otherBu