iOS sqlite大数据分段加载的实现,sqlite数据库的操作
数据库管理类(自己封装的,挺简单的)
//
// MyDataBaseManger.m
// DB_Test
//
// Created by admin on 17/2/7.
// Copyright © 2017年 HWWY. All rights reserved.
//
#import "MyDataBaseManger.h"
#import "FMDB.h"
@interface MyDataBaseManger()
@property(nonatomic,strong)FMDatabase *dataBase;
@end
@implementation MyDataBaseManger
@synthesize dataBase;
static MyDataBaseManger *manager = nil;
+(MyDataBaseManger *)createManager
{
if (manager == nil) {
manager = [[MyDataBaseManger alloc] init];
}
return manager;
}
-(void)dataBaseWithFile:(NSString *)fileName
{
if(fileName == nil){
NSLog(@"文件名不能为空");
return;
}
NSString *path = [[NSBundle mainBundle]pathForResource:fileName ofType:nil];
if (path == nil) {
NSLog(@"找不到文件路劲");
return;
}
if (path) {
dataBase = [[FMDatabase alloc]initWithPath:path];
if (![dataBase open]) {
NSLog(@"数据库打开失败");
return;
}
}else{
NSLog(@"数据库路径获取失败");
}
}
-(NSArray *)getArrayData:(NSString *)sqlString
{
//每次对数据操作的时候都必须打开数据库,这个东西说不定啥时候就关闭了
[self openDataBase];
NSMutableArray *array = [NSMutableArray array];
FMResultSet *result = [dataBase executeQuery:sqlString];
while (result.next) {
NSDictionary *tempDict = [result resultDictionary];
[array addObject:tempDict];
}
return array;
}
/**
数据库打开类
*/
-(void)openDataBase
{
if ([dataBase close]) {
[dataBase open];
}
}
@end
调用的地方:
//下面是一个简单的例子
//开始值得位置
int startTag = 0;
//每次的增量
static int temp = 30;
NSString *deaseName = @"%%病%%";
//拼接sql语句
NSString *sqlGetAll = [NSString stringWithFormat:@"select * from student where term_name like '%@' limit %d, %d;",deaseName, startTag,temp];
//初始化我们的数据库管理对象
dataBaseManager = [MyDataBaseManger createManager];
[dataBaseManager dataBaseWithFile:@"testDB.db"];
NSArray *arr = [dataBaseManager getArrayData:sqlGetAll];
NSLog(@"%@",arr);
下面只需要对arr里面的字典封装为model就可以使用了,上面我写的startTag和temp封装到下拉控件就可以了,是不是很简单哦。
这样封装的好处,sql语句随心写,返回数据随便解析。
iOS sqlite大数据分段加载的实现,sqlite数据库的操作的更多相关文章
- 大数据量高并发的数据库优化详解(MSSQL)
转载自:http://www.jb51.net/article/71041.htm 如果不能设计一个合理的数据库模型,不仅会增加客户端和服务器段程序的编程和维护的难度,而且将会影响系统实际运行的性能. ...
- 大数据-将MP3保存到数据库并读取出来《黑马程序员_超全面的JavaWeb视频教程vedio》day17
黑马程序员_超全面的JavaWeb视频教程vedio\黑马程序员_超全面的JavaWeb教程-源码笔记\JavaWeb视频教程_day17-资料源码\day17_code\day17_1\ 大数据 目 ...
- DB开发之大数据量高并发的数据库优化
一.数据库结构的设计 如果不能设计一个合理的数据库模型,不仅会增加客户端和服务器段程序的编程和维护的难度,而且将会影响系统实际运行的性能.所以,在一个系统开始实施之前,完备的数据库模型的设计是必须的. ...
- 大数据量高并发的数据库优化,sql查询优化
一.数据库结构的设计 如果不能设计一个合理的数据库模型,不仅会增加客户端和服务器段程序的编程和维护的难度,而且将会影响系统实际运行的性能.所以,在一个系统开始实施之前,完备的数据库模型的设计是必须的. ...
- 大数据系列2:Hdfs的读写操作
在前文大数据系列1:一文初识Hdfs中,我们对Hdfs有了简单的认识. 在本文中,我们将会简单的介绍一下Hdfs文件的读写流程,为后续追踪读写流程的源码做准备. Hdfs 架构 首先来个Hdfs的架构 ...
- ios中常见数据存储方式以及SQLite常用的语句
在iOS中,根据不同的需求对应的有多种数据存储方式: 1.NSUserdefaults 将数据存储到沙盒中(library),方便易用,但是只能存储系统提供的数据类型(plist),不能存储自定义的 ...
- 大数据技术之_11_HBase学习_02_HBase API 操作 + HBase 与 Hive 集成 + HBase 优化
第6章 HBase API 操作6.1 环境准备6.2 HBase API6.2.1 判断表是否存在6.2.2 抽取获取 Configuration.Connection.Admin 对象的方法以及关 ...
- 大数据入门到精通11-spark dataframe 基础操作
// dataframe is the topic 一.获得基础数据.先通过rdd的方式获得数据 val ny= sc.textFile("data/new_york/")val ...
- 对大数据的批量导入MySQL数据库
自己的库里有索引在用insert导入数据时会变慢很多 使用事务+批量导入 可以配置使用spring+mybatis整合的方式关闭自动提交事务(地址),选择批量导入每一百条导入使用list存储值传入到m ...
随机推荐
- git之摘抄
vn中央集权, 统一服务器, 权限安全管理 git 分布式,代码仓库历史本地有,不受约束, 可以随意开分支.
- VKD224B触摸芯片调试笔记
1.通过阅读datasheet了解芯片怎么使用,一般datasheet会提供参考电路.和相应的电气参数. 通过上面的表格可以知道芯片的供电,所需电流. 这个芯片可以通过引脚选择模式.通过上面的选项设置 ...
- Unable to construct api.Node object for kubelet: can't get ip address of node master.example.com: lookup master.example.com on : no such host
openshift首页进不去 启动openshift时报的错,大意是: 无法为kubelet构造api.Node对象:无法获取节点master.example.com的IP地址: 所以就联想到新装的c ...
- 删除本地git的远程分支和远程删除git服务器的分支
在项目中使用git管理代码后,有些时候会创建很多不同名称的分支,以此区分各个分支代码功能. 而随着代码的合并,以前的分支就可能不再需要保存了,所以就要对没有用的分支进行删除,包括紧急回滚时从中抽取某一 ...
- 怎样从外网访问内网Tornado
外网访问内网Tornado 本地安装了Tornado,只能在局域网内访问,怎样从外网也能访问本地Tornado? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动Tornado 默认安装 ...
- 51Nod 1010 只包含因子2 3 5的数
K的因子中只包含2 3 5.满足条件的前10个数是:2,3,4,5,6,8,9,10,12,15. 所有这样的K组成了一个序列S,现在给出一个数n,求S中 >= 给定数的最小的数. 例如:n = ...
- String.split()与StringUtils.split()
我们平时进行简单的字符串分割的时候,尽量不要用String自身的split方法,它是匹配正则表达式的,如果遇到$这种特殊字符,需要转义一下.用StringUtils.split()方法会更方便 使用a ...
- 2.nginx配置教程
1. nginx配置域名访问: 路径:vim /usr/local/nginx/conf/nginx.conf (这是我nginx的安装路径) 配置以后就不用通过ip(192.168.0.103)去访 ...
- SSH 远程登陆
2019-03-10 20:41:39 一.什么是SSH 简单说,SSH是一种网络协议,用于计算机之间的加密登录. 如果一个用户从本地计算机,使用SSH协议登录另一台远程计算机,我们就可以认为,这种登 ...
- http content-type 与 java后端处理
http中的常用的content-type有: application/x-www-form-urlencoded;charset=UTF-8 传递表单类数据 application/json;ch ...