开发者社区> 长征6号> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

在XCode中如何使用高级查询

简介:
+关注继续查看

对于一个框架来说,仅有基本的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!

我不相信神话,我只相信汗水!我不相信命运,我只相信双手!
分类: X组件

本文转自大石头博客园博客,原文链接:http://www.cnblogs.com/nnhy/archive/2011/08/16/2140479.html,如需转载请自行联系原作者

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
[分享]错误“应用程序Xcode的这个版本不能与此版本的OS X配合使用”以及Mac源码和IOS开发资料分享
[分享]错误“应用程序Xcode的这个版本不能与此版本的OS X配合使用”以及Mac源码和IOS开发资料分享 安装Xcode时,出现“应用程序Xcode的这个版本不能与此版本的OS X配合使用”错误如下: 解决方案是: /system/libary/coreservice/SystemVersion.plist中的两个10.10为10.10.5 修改过程会提示无权限修改,要不要建立副本,点击提示框中的“复制”按钮,存到桌面上。
2562 0
iOS开发之XCode模拟器不能连接网络
新装的Xcode7 编译程序 出现 #warning: 获取app配置信息失败: The resource could not be loaded because the App Transport Security 我开始以为是xcode没优化好的缘故,其实这是苹果加大安全的管控,将以往HTTP协议强制改为HTTPS协议,以后的APP应该都是了,根本解决办法 改协议,临时解决办法在Info.
982 0
iOS开发工具Xcode:Interface Builder
简介: Interface Builder(IB)是Mac OS X平台下用于设计和测试用户界面(GUI)的应用程序(非开源)。为了生成GUI,IB并不是必需的,实际上Mac OS X下所有的用户界面元素都可以使用代码直接生成;但IB能够使开发者简单快捷的开发出符合Mac OS X human-interface guidelines的GUI。
1129 0
【iOS开发】Xcode 7 Simulator 问题小记
问题1:Xcode -> Preferences -> Downloads 点击下载按钮弹出错误提示框 这里我没有再重现当时 Xcode 弹出错误提示框的场景,大概是在你想要下载 iOS 8.x 的 Simulator 或者 iOS 9.0 Documentation 的时候,告诉你有个什么什么地址不安全,你是否仍然要下载模拟器,然后你跟 Xcode 说『是的,我仍然要下载』 的时候,就没有然后了。
785 0
解决iOS Xcode 模拟器键盘不弹出
1. 选中模拟器,在屏幕上方的菜单中找到Hardware->Keyboard 2. 直接快捷键shift+command+k
621 0
iOS 在 XCode 6 中的福利:TestFlight
iOS 在 XCode 6 中的福利 太阳火神的美丽人生 (http://blog.csdn.net/opengl_es) 本文遵循“署名-非商业用途-保持一致”创作公用协议 转载请保留此句:太阳火神的美丽人生 -  本博客专注于 敏捷开发及移动和物联设备研究:iOS、Android、Html5、Arduino、pcDuino,否则,出自本博客的文章拒绝转载或再转载,谢谢合作。
1199 0
iOS开发UI篇—推荐两个好用的Xcode插件(提供下载链接)
iOS开发UI篇—推荐两个好用的Xcode插件(提供下载链接) 这里推荐两款好用的Xcode插件,并提供下载链接。 一、插件和使用如下: 1.两款插件 对项目中图片提供自动提示功能的插件:KSImageNamed-Xcode-master 提供快速创建自动注释:VVDocumenter-Xcode-master 2.使用介绍: (1)KSImageNamed-Xcode-master的使用 安装该插件后,会对文件中图片进行智能提示。
828 0
iOS开发UI篇—IOS开发中Xcode的一些使用技巧
iOS开发UI篇—IOS开发中Xcode的一些使用技巧 一、快捷键的使用 经常用到的快捷键如下: 新建 shift + cmd + n     新建项目 cmd + n             新建文件   视图 option + cmd + 回车 打开助理编辑器 cmd + 回车...
854 0
+关注
1222
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载