【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, ...
随机推荐
- .net 使用Json(),maxJsonLength属性设置的值问题
“使用JSON JavaScriptSerializer进行序列化或反序列化时出错.字符串的长度超过了为maxJsonLength属性设置的值” 今天业务找我说线上的国家地区都显示数字(地区ID),而 ...
- 一、Stream,sink,source,transform
1. 蓝牙核心概述 2.Stream,sink,source,transform 在ADK的blueCore里面,Stream作为一个逻辑结构用来描述一个数据终点(data Endpoint).通常, ...
- max server memory
MS SQL Server 2008 R2,主要是用作ERP的数据库,但它的内存使用率非常高: 经查资料,原来数据库有默认的情况之下,使用内存时它是尽可能使用完有效内存.如果你不想这样,你可以手动分配 ...
- .Net实现拉勾网爬虫
前几天看到一个.NET Core写成的爬虫,有些莫名的小兴奋,之前一直用集搜客去爬拉勾网的招聘信息,这个傻瓜化工具相当于用HTML模板页去标记DOM节点,然后在浏览器窗口上模拟人的浏览行为同时跟踪节点 ...
- mongdo通用类(C#版)
日前从公司离职,很快,还没休息就步入了现在的公司,开始跟着公司的脚步走. 公司的项目基本都是大数据的,所以在数据库上大部分都是使用Mongodb和Redis,基本都是Nosql型的数据库为主.以前自己 ...
- 【UWP】使用Action代替Command
在Xaml中,说到绑定,我们用的最多的应该就是ICommand了,通过Command实现ViewModel到View之间的命令处理,例如Button默认就提供了Command支持,如下 Xaml: & ...
- MVC开发经验总结
网站开发中技术问题的笔记 以下经验基于 MVC 5.2.3 Javascript BUG思考 200 OK真的表示没有问题吗? 有时候Status 200作为WebAPI的返回值,并不表示真的OK,例 ...
- Extjs 回车查询
listeners: { afterRender: function (thisForm, options) { this.keyNav = Ext.create('Ext.util.KeyNav', ...
- Adb connection Error:远程主机强迫关闭了一个现有的连接
在用手机调试程序时,有时会出现“Adb connection Error:远程主机强迫关闭了一个现有的连接”的错误. 出现这种错误时,可以按照以下步骤解决: (1)运行cmd.exe,并将目录CD到\ ...
- 禅道PMS兼容redmine用户认证接口
项目地址:https://github.com/web3d/zentao-redmine-userauth zentao-redmine-userauth 做了一个基本的用户认证接口,兼容redmin ...