将所有对象存到数据库中
来源:互联网 发布:进销存财务一体软件 编辑:程序博客网 时间:2024/05/16 05:49
原帖地址
如果将字典或数组直接存储在数据库中,会将数组或字典转化成字符串,所以可以使用归档与反归档的方法将数据进行编码和解码成二进制数据进行存储,而在数据库中需要使用blob类型存储二进制数据。
如下面的例子:
在Shop.m中
#import "Shop.h"@implementation Shop#pragma mark 编码-(void)encodeWithCoder:(NSCoder *)enCoder { [enCoder encodeObject:self.name forKey:@"name"]; [enCoder encodeDouble:self.price forKey:@"price"];}#pragma mark 解码- (instancetype)initWithCoder:(NSCoder *)decoder{ self = [super init]; if (self) { self.name = [decoder decodeObjectForKey:@"name"]; self.price = [decoder decodeDoubleForKey:@"price"]; } return self;}-(NSString *)description { return [NSString stringWithFormat:@"%@--%f",self.name, self.price];}@end
在ViewController中
初始化数据库
//初始化数据库-(void)initDatabase { //初始化 NSString *path = [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject] stringByAppendingPathComponent:@"shop.sqlite"]; self.db = [FMDatabase databaseWithPath:path]; [self.db open]; //创表 //数据库中blob是二进制对象 [self.db executeUpdate:@"CREATE TABLE IF NOT EXISTS t_shop(id integer PRIMARY KEY, shop blob NOT NULL)"];}
添加数据
//添加数据- (void)addShops { for (int i = 0; i < 1000; i++) { Shop *shop = [[Shop alloc] init]; shop.name = [NSString stringWithFormat:@"商品--%d", i]; shop.price = arc4random() % 10000; //要将一个对象存进数据库的blob字段,最先转化为NSData //一个对象要遵守NSCoding协议,实现协议中相应的方法,才能转化为NSData NSData *data = [NSKeyedArchiver archivedDataWithRootObject:shop]; [self.db executeUpdateWithFormat:@"INSERT INTO t_shop(shop) VALUES (%@);",data]; }}
读取数据
// 读取数据-(void)readShos { FMResultSet *set = [self.db executeQuery:@"SELECT * FROM t_shop LIMIT 10;"]; while (set.next) { NSData *data = [set objectForColumnName:@"shop"]; Shop *shop = [NSKeyedUnarchiver unarchiveObjectWithData:data]; NSLog(@"%@---%f",shop.name, shop.price); }}
示例代码
0 0
- 将所有对象存到数据库中
- 如何将图片存到数据库中?
- 将自定义对象作为元素存到TreeSet集合中
- java将序列化对象存到文件中
- java如何里将文件存到数据库中
- 将Excel列转为字符串存到数据库表中
- 将自定义对象存到文件
- 将图片上传存到数据库
- ios 将任意对象存进数据库
- 将自定义对象作为元素存到ArrayList集合中,并去除重复元素
- 黑马程序员-将自定义对象最为元素存到ArrayList集合中,并去除重复元素
- 将自定义对象作为元素存到ArrayList集合中,并去除重复元素。
- Java将自定义对象作为元素存到ArrayList集合中,并去除重复元素。
- 使用JSON将购物车中的对象存到Cookie中
- 将自定义对象作为元素存到arrarylist集合中,并去除重复元素
- ORACLE如何将本地文件以Bolb/CLOB形式存到数据库中
- 如何将图片存到数据库中,并在前台显示:
- 如何将DataSet对象存储到数据库中
- php各版本下载地址
- 敏捷开发 - scrum 入门
- JDBC常用接口PrepareStatement
- 用户故事驱动的敏捷开发 – 1. 规划篇
- Ubuntu安装Python及MYSQL
- 将所有对象存到数据库中
- ubuntu14.04安装Oracle_linux_x64_11gR2
- 使用Gradle构建Java项目
- 大型网站开发技术书籍汇总
- 23种设计模式全解析
- 算术操作符重载和关系操作符重载
- 自定义UITextView
- 新手学习记录4:makefile学习实践--伪目标的引入
- mysql explain的用法(使用explain优化查询语句)