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 ...
随机推荐
- PHP插入数据库代码,编辑,删除
插入代码 $action=$_GET['action']; switch($action){ //添加记录 case"add"; $mail = trim(htmlspecialc ...
- JAVA多线程之CountDownLatch与join的区别
首先,我们来看一个应用场景1: 假设一条流水线上有三个工作者:worker0,worker1,worker2.有一个任务的完成需要他们三者协作完成,worker2可以开始这个任务的前提是worker0 ...
- sitecore 数字化营销-path funnel
路径分析器是一个应用程序,允许您查看联系人在浏览网站时所采用的各种路径.您可以查看联系人在转换目标并与广告系列互动时所采用的路径,让您深入了解哪些路径为每次转化提供最佳参与价值,以及哪些路径效率较低且 ...
- JVM探秘5---JVM监控命令大全
jps命令---查看JVM进程状况 格式为:jps [options] [hostid] 功能描述: jps是用于查看有权访问的hotspot虚拟机的进程. 当未指定hostid时,默认查看本机jvm ...
- 8、Spring-Kafka Recving Messages
Record Listeners The @KafkaListener annotation provides a mechanism for simple POJO listeners. The f ...
- Linux 系统级开启文件句柄 调优
系统级开启文件句柄 max-file系统级别的能够打开的文件句柄的数量,Centos7默认是794168. Max-file 与 ulimit -n 的区别 max-file 表示系统级别的能够打开 ...
- 03:CDN原理
1.1 CDN简介 1.CDN作用(缓存静态资源) 1. CDN的全称Content Delivery Network,(缩写:CDN)即内容分发网络. 2. CDN解决由于网络带宽小.用户访问量大. ...
- opencv学习之路(26)、轮廓查找与绘制(五)——最小外接矩形
一.简介 二.轮廓最小外接矩形的绘制 #include "opencv2/opencv.hpp" using namespace cv; void main() { //轮廓最小外 ...
- 剑指offer(13)调整数组顺序使奇数位于偶数前面
题目描述 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变. 题目分析 判断是 ...
- SVN更新的时候前面的子母的意思(A C D M G U R I)
U:update 表示从服务器收到文件更新了 G:表示本地文件以及服务器文件都已更新,而且成功的合并了 其他的如下: A:add 表示有文件或者目录添加到工作目录 R:replace,从服务器替换,表 ...