数据库02-FMDB(掌握)

来源:互联网 发布:华为荣耀5a手机壳淘宝 编辑:程序博客网 时间:2024/05/16 19:12

这是一个第三方库
而且通过模型 来封装
别人不怎么如何实现

////  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 HMShopToolstatic 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
0 0