在XCode中如何使用高级查询

简介: 对于一个框架来说,仅有基本的CURD不行,NewLife.XCode同时还提供了一个非常宽松的方式来使用高级查询,以满足各种复杂的查询需求。 (本文同样适用于其它任何数据访问框架) 先上图看一个复杂查询的效果图: 这里有8个固定的查询条件和1个模糊查询条件,加上多表关联(7张表)、分页、统计,如果用传统的做法,这个查询会非常的复杂。

对于一个框架来说,仅有基本的CURD不行,NewLife.XCode同时还提供了一个非常宽松的方式来使用高级查询,以满足各种复杂的查询需求。

(本文同样适用于其它任何数据访问框架)

先上图看一个复杂查询的效果图:

image

这里有8个固定的查询条件和1个模糊查询条件,加上多表关联(7张表)、分页、统计,如果用传统的做法,这个查询会非常的复杂。

这个页面有XCode实现,核心查询部分共100多行代码,包括一个查询、一个总记录数分页、两个统计(就是业绩、提成等的统计),看看高级查询代码:

image

可以看到,关键就在SearchWhere里面,另外四个方法,都是调用它,它的作用,就是为了构造一个where字句。

XCode不支持多表关联(v7开始测底不支持,以前的支持太鸡肋,几乎从未使用),这种涉及多表关联的查询,就需要子查询来代替了,看看SearchWhere:

image

image

可以看到,除了UserRelation外,基本都是通过子查询来实现关联查询。而UserRelation是用户关系表,数据比较固定,采用了二级实体缓存,对它的查询几乎不会形成数据库查询,缓存命中率不低于99%。

在各个小片段上使用MakeCondition格式化数据,保证这些代码能根据当前数据库生成相应的语句,使得系统能支持多数据库。比如时间日期类型,在MSSQL是单引号边界,在Access是井号边界。

 

回过头来,看看前端页面是怎么做的,查询条件区域:

image

这里用了好些用户自定义控件,便于多个地方重用。

再看看ObjectDataSource是怎么配置的:

image

ObjectDataSource负责把查询区域的控件跟后台查询方法的参数,给绑定起来,并且支持分页查询,让前台页面,不需要写代码,就实现了高级分页查询。

并且,后台的那些查询方法,同样适用于非ObjectDataSource的前台,也适用于WinForm等应用系统之中!

 

NewLife.XCode下载地址:http://XCode.codeplex.com

没有很完整的教程,只有本博客中的点点滴滴!初衷是跟大家交流技术,让大家都掌握这些应用开发经验,而不是让大家都来用XCode!有了这些东西,你也可以做出来自己的XCode!

我不相信神话,我只相信汗水!我不相信命运,我只相信双手!
相关文章
|
6月前
|
数据安全/隐私保护 Swift iOS开发
如何用 Xcode 安装 ipa
如何用 Xcode 安装 ipa
|
安全 IDE Linux
如何用Xcode安装ipa
iOS APP上架App Store其中一个步骤就是要把ipa文件上传到App Store! 下面进行步骤介绍! 利用Appuploader这个软件,可以在Windows、Linux或Mac系统中申请ios和上传IPA到App Store Connect。 非常的方便,没有Mac也可以用Appuploader在Windows电脑上传ipa到App Store Connect后台。
如何用Xcode安装ipa
|
iOS开发 MacOS
Xcode和macOS对应关系查询网址
Xcode和macOS对应关系查询网址
347 0
|
IDE API 开发工具
Airtest1.1.4更新:xcode最新支持到11.5!
Airtest1.1.4更新:xcode最新支持到11.5!
155 0
|
人工智能 大数据 iOS开发
|
JavaScript 测试技术 iOS开发