【CoreData】分页查询和模糊查询
// 1.创建模型文件 (相当于一个数据库里的表)
// New File ———— CoreData ———— Data Model ———— Next
// 2.添加实体 (相当于一张表)
// 找到我们创建的模型文件(xxx.xcdatamodeld,我创建的叫School.xcdatamodeld)————Add
Entity ———— 添加表内属性(这边我添加2个属性(name,age))
// 3.创建实体类
// New File ———— CorData ———— NSManagedobject subclass ————Next(记得选择需要关联的表)这样就会自动生成相应的模型
// 4.生成上下文 关联模型文件生成数据库(关联的时候,如果本地没有数据库文件,CoreData会自己创建)
// 上下文,记得引用CoreData框架
NSManagedObjectContext *context= [[NSManagedObjectContext alloc]init];
// 上下文关联数据库
// model模型文件, 参数:mergedModelFromBundles:因为模型文件是资源文件,所以会放到BUNDLES里面,所以只需要写nil就可以了。
NSManagedObjectModel *model= [NSManagedObjectModel mergedModelFromBundles:nil];
// 持久化存储调度器(持久化:把数据保存在一个文件,而不是放在内存中)
NSPersistentStoreCoordinator *store=[[NSPersistentStoreCoordinator alloc] initWithManagedObjectModel:model];
// 告诉CoreData数据库的名字和路径
NSString *doc=
[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];
NSString *sqlitePath=[doc stringByAppendingPathComponent:@"School.sqlite"];
[store addPersistentStoreWithType:NSSQLiteStoreTypeconfiguration:nil URL:[NSURL fileURLWithPath:sqlitePath] options:nilerror:nil];
context.persistentStoreCoordinator =store;
然后我们来测试一下是否可以写入数据
#pragma mark - 添加
- (void)addStudent
{
//为了更好地演示查询和分页,我们通过FOR循环来创建多个个学生对象
;i<<span style="font-variant-ligatures: no-common-ligatures;color: #272ad8">20; i++)
{
Student*stu=[NSEntityDescriptioninsertNewObjectForEntityForName:@"Student"inManagedObjectContext:_context];
== ){
stu.name= [NSStringstringWithFormat:@"李四%d",i];
}
else
{
stu.name= [NSStringstringWithFormat:@"张三%d",i];
}
stu.age=
@(1.9+ i);
}
//
直接保存数据库
[_contextsave:nil];
}
写入数据成功,接下来就是分页查询的使用方法
#pragma mark - 分页查询
- (void)pagination
{
// 1.FectchRequest
抓取请求对象
NSFetchRequest
*request= [NSFetchRequest fetchRequestWithEntityName:@"Student"];
// 2.分页查询
//
分页的起始索引
request.fetchOffset=
;
//
每一页条数
request.fetchLimit=
;
//因为我们总共添加了20条数据,所以从0- 7会获取7条信息
// 7 - 7也是7条信息
//
当从 14- 7
获取的时候就只剩6条信息了
// 3.设置排序
// 身高的升序排序
NSSortDescriptor
*ageSort= [NSSortDescriptor sortDescriptorWithKey:@"age"ascending:YES]; //降序为NO
request.sortDescriptors=
@[ageSort];
// 4.执行请求
NSArray*stus = [_contextexecuteFetchRequest:requesterror:nil];
for(Student*stu
instus)
{
NSLog(@"名字:%@身高:%@",stu.name,stu.age);
}
}
#pragma mark - 模糊查询
- (void)dimquery
{
// 1.FectchRequest
抓取请求对象
NSFetchRequest
*request= [NSFetchRequest fetchRequestWithEntityName:@"Student"];
// 2.设置过滤条件
//
查找“张”开头也可以用like
NSPredicate*pre= [NSPredicatepredicateWithFormat:@"nameBEGINSWITH
%@",@"张"];
// like的功能和上面的BEGINSWITH一样
// NSPredicate *pre =[NSPredicate predicateWithFormat:@"name like %@", @"张"];
//
查找 “1”结尾
// NSPredicate *pre =[NSPredicate predicateWithFormat:@"name ENDSWITH %@", @"1"];
//
查找包含“张三2”的
// NSPredicate *pre =[NSPredicate predicateWithFormat:@"name CONTAINS %@",@"张三2"];
request.predicate= pre;
// 3.设置排序
//
身高的升序排序
NSSortDescriptor
*ageSort= [NSSortDescriptor sortDescriptorWithKey:@"age"ascending:YES]; //降序为NO
request.sortDescriptors=
@[ageSort];
// 4.执行请求
NSArray*stus = [_contextexecuteFetchRequest:requesterror:nil];
for(Student*stu
instus)
{
NSLog(@"名字:%@身高:%@",stu.name,stu.age);
}
}
【CoreData】分页查询和模糊查询的更多相关文章
- 10月30日下午 PHP精确查询(模糊查询、模糊+关键字共同查询)
1.一个条件的模糊查询 <body> <br /> <form action="main.php" method="post"&g ...
- Linq动态查询与模糊查询 ---转
Linq动态查询与模糊查询(带源码示例) 继LINQ动态组合查询PredicateExtensions讲解 ----- 在用上面的方法时遇到了些问题 解决 LINQ to Entities 不支持 L ...
- 【知识库】-数据库_MySQL之基本数据查询:子查询、分组查询、模糊查询
简书作者:seay 文章出处: 关系数据库SQL之基本数据查询:子查询.分组查询.模糊查询 回顾:[知识库]-数据库_MySQL常用SQL语句语法大全示例 Learn [已经过测试校验] 一.简单查询 ...
- Asp.net Core C#进行筛选、过滤、使用PredicateBuilder进行动态拼接lamdba表达式树并用作条件精准查询,模糊查询
在asp.net core.asp.net 中做where条件过滤筛选的时候写的长而繁琐不利于维护,用PredicateBuilder进行筛选.过滤.LInq配合Ef.core进行动态拼接lamdba ...
- Springmvc+Myabtis+Ajax实现异步分页emp+dept(全部查询及模糊查询)
1.在项目中创建如下目录 2.创建实体类Dept package com.entity; import java.io.Serializable; /** * 部门表 * @author Admini ...
- 10 star组件之分页, search模糊查询, action批量处理
1.分页组件高阶 1.分页的class形式(有bug,请看下面的) """ 自定义分页组件 """ class Pagination(obj ...
- 18 12 06 sql 的 基本语句 查询 条件查询 逻辑运算符 模糊查询 范围查询 排序 聚合函数 分组 分页 连接查询 自关联 子查询
-- 数据的准备 -- 创建一个数据库 create database python_test charset=utf8; -- 使用一个数据库 use python_test; -- 显示使用的当前 ...
- thinkphp条件查询和模糊查询的一些方法
#文章管理 public function adminArticle(){ $adminArticle=M("article"); $arr_seach=$this->sea ...
- 【mysql】 mysql 子查询、联合查询、模糊查询、排序、聚合函数、分组----------语法
第二章 mysql 一.模糊查询 like 1. 字段 like '河北省%' %代表任何N个字符 2 字段 like '河北省____' _代表任意1个字符 二.IN 语法:SELECT 字段列1, ...
随机推荐
- Design Pattern: Observer Pattern
1. Brief 一直对Observer Pattern和Pub/Sub Pattern有所混淆,下面打算通过这两篇Blog来梳理这两种模式.若有纰漏请大家指正. 2. Use Case 首先我们来面 ...
- Android Studio添加PNG图片报错原因
今天在网上看到一个关于Splash Activity的Android帖子,博主在一通讲解之后也给出了代码.于是果断下载下来了看看怎么实现的.一步步照着流程把这个功能实现了一遍.一切都没有大问题,但是在 ...
- DP - 2016网易杭研笔试题A
2016网易杭研笔试题A Problem's Link ------------------------------------------------------------------------ ...
- C#:基于WMI查询USB设备信息 及 Android设备厂商VID列表
/* ---------------------------------------------------------- 文件名称:WMIUsbQuery.cs 作者:秦建辉 MSN:splashc ...
- 【C#】递归搜索指定目录下的指定项目(文件或目录)
---------------更新:201411201121--------------- 主要更新说明:将原bool recurse参数改为int depth,这样可以指定递归深度,而不是笼统的是否 ...
- 【C#】注意用“划算”的方式使用图标
先解释一下何谓“划算”:假定一个Winform程序包含若干个窗体,每个窗体左上角都要显示图标(即要设置Form.Icon属性),该程序本身也要有个图标(用于在OS资源管理器中显示),所有这些图标都是一 ...
- QQ--模拟登录
QQ--模拟登录 使用PC端模拟登录,主要使用的QQ空间登录地址测试. 首先,QQHelper的创建. #region Helper /// <summary> /// Helper // ...
- C# 使用memcache(memcache安装)
1.下载memcache. 2.安装memcache. 3.安装好后,打开任务管理器就能看到memcache服务了. 4 .memcache基本命令.
- Cursors in MySQL Stored Procedures
https://www.sitepoint.com/cursors-mysql-stored-procedures/ After my previous article on Stored Proce ...
- ios跑酷游戏源码完整版
今天在网上看到了一个很流行的ios游戏源码,酷跑游戏源码,个人下载感觉非常不错,运行起来非常不错的,大家可以研究一下吧,由于源码文件较大,没有上传,请大家见谅. 由于文件较大,没有上传了,大家可以到这 ...