数据库02-FMDB(掌握)
2015-06-12 17:28
393 查看
这是一个第三方库
而且通过模型 来封装
别人不怎么如何实现
HMShopTool.h (工具类)
HMShop.h (模型类??)
而且通过模型 来封装
别人不怎么如何实现
// // HMViewController.m // 02-FMDB(掌握) // // Created by apple on 14/11/16. // Copyright (c) 2014年 heima. All rights reserved. // #import "HMViewController.h" //#import "FMDB.h" #import "HMShop.h" #import "HMShopTool.h" @interface HMViewController () //@property (nonatomic, strong) FMDatabase *db; @end @implementation HMViewController - (void)viewDidLoad { [super viewDidLoad]; // 1.打开数据库 // NSString *path = [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject] stringByAppendingPathComponent:@"shops.sqlite"]; // self.db = [FMDatabase databaseWithPath:path]; // [self.db open]; // // // 2.创表 // [self.db executeUpdate:@"CREATE TABLE IF NOT EXISTS t_shop (id integer PRIMARY KEY, name text NOT NULL, price real);"]; // executeQuery:查询数据 // [self.db executeQuery:<#(NSString *), ...#>]; // executeUpdate:除查询数据以外的其他操作 // [self.db executeUpdate:<#(NSString *), ...#>]; } - (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { // for (int i = 0; i<100; i++) { // HMShop *shop = [[HMShop alloc] init]; // shop.name = [NSString stringWithFormat:@"枕头--%d", i]; // shop.price = arc4random() % 200; // [HMShopTool addShop:shop]; // } NSArray *shops = [HMShopTool shops]; for (HMShop *shop in shops) { NSLog(@"%@ %f", shop.name, shop.price); } // [self.db executeUpdate:@"DELETE FROM t_shop WHERE price < 800;"]; // // [self query]; } - (void)query { // 得到结果集 // FMResultSet *set = [self.db executeQuery:@"SELECT * FROM t_shop;"]; // // // 不断往下取数据 // while (set.next) { // // 获得当前所指向的数据 // NSString *name = [set stringForColumn:@"name"]; // double price = [set doubleForColumn:@"price"]; // NSLog(@"%@ %f", name, price); // } } - (void)insert { // for (int i = 0; i<100; i++) { // NSString *name = [NSString stringWithFormat:@"手机-%d", i]; //#warning 这里的字符串不用再加上'' // [self.db executeUpdateWithFormat:@"INSERT INTO t_shop(name, price) VALUES (%@, %d);", name, arc4random()%1000]; // } } @end
HMShopTool.h (工具类)
// // HMShopTool.h // 02-FMDB(掌握) // // Created by apple on 14/11/16. // Copyright (c) 2014年 heima. All rights reserved. // #import <Foundation/Foundation.h> @class HMShop; @interface HMShopTool : NSObject + (NSArray *)shops; + (void)addShop:(HMShop *)shop; @end ---------- // // HMShopTool.m // 02-FMDB(掌握) // // Created by apple on 14/11/16. // Copyright (c) 2014年 heima. All rights reserved. // #import "HMShopTool.h" #import "FMDB.h" #import "HMShop.h" @implementation HMShopTool static FMDatabase *_db; + (void)initialize { // 1.打开数据库 NSString *path = [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject] stringByAppendingPathComponent:@"shops.sqlite"]; _db = [FMDatabase databaseWithPath:path]; [_db open]; // 2.创表 [_db executeUpdate:@"CREATE TABLE IF NOT EXISTS t_shop (id integer PRIMARY KEY, name text NOT NULL, price real);"]; } + (void)addShop:(HMShop *)shop { [_db executeUpdateWithFormat:@"INSERT INTO t_shop(name, price) VALUES (%@, %f);", shop.name, shop.price]; } + (NSArray *)shops {// 得到结果集 FMResultSet *set = [_db executeQuery:@"SELECT * FROM t_shop;"]; // 不断往下取数据 NSMutableArray *shops = [NSMutableArray array]; while (set.next) { // 获得当前所指向的数据 HMShop *shop = [[HMShop alloc] init]; shop.name = [set stringForColumn:@"name"]; shop.price = [set doubleForColumn:@"price"]; [shops addObject:shop]; } return shops; } @end
HMShop.h (模型类??)
// // HMShop.h // 02-FMDB(掌握) // // Created by apple on 14/11/16. // Copyright (c) 2014年 heima. All rights reserved. // #import <Foundation/Foundation.h> @interface HMShop : NSObject @property (nonatomic, copy) NSString *name; @property (nonatomic, assign) double price; @end ---------- // // HMShop.m // 02-FMDB(掌握) // // Created by apple on 14/11/16. // Copyright (c) 2014年 heima. All rights reserved. // #import "HMShop.h" @implementation HMShop @end
相关文章推荐
- Linux C函数参考手册(PDF版)
- Lua教程(十七):C API简介
- C#实现打造气泡屏幕保护效果
- C/C++数据对齐详细解析
- C 语言基础教程(我的C之旅开始了)[三]
- C++中的extern “C”用法详解
- C 语言基础教程(我的C之旅开始了)[七]
- C字符串操作函数实现方法小结
- C/C++ 宏详细解析
- 自己简单封装的一个CDialog类实例
- C/C++实现对STORM运行信息查看及控制的方法
- 用C#生成不重复的随机数的代码
- 封装好的一个万能检测表单的方法
- jquery datatable后台封装数据示例代码
- c#基础学习之封装
- 在c和c++中实现函数回调
- 纯JavaScript实现的兼容各浏览器的添加和移除事件封装
- 浅析C/C++中被人误解的SIZEOF
- C 语言基础教程(我的C之旅开始了)[六]