CRUD(Create, Read,Update, Delete)操作中最难处理的是查询。因为查询总是多样化的,如果每个特定查询调用都编制一个对象方法,则维护量太大且扩展性很差。如果编制一个通用的
查询接口,一般的做法是直接以SQL文本作为参数,但这样就几乎丧失了封装的意义。这里的核心问题是Query本身是复杂的,我们应该将它对象化为一个
类,在程序中控制Query的结构,而一个文本对象与一个复杂的Java结构对象的差异就在于对于文本对象我们很难有什么假定,因而在程序中也很难编制通
用的程序对其进行处理,一般只能对它进行传递。实际上,文本中描述的结构存在于java程序之外!当然,我们可以利用Parser来重新发现这种结构,那
最容易使用的Parser就是xml parser了,所以我们应该将Query的结构建立在xml描述的基础上。
edu.thu.search.Query类直接体现了对主题域的通用查询条件。(对比我对数据仓库模型的描述)
class Query{
List getFields();
TreeNode getCondition();
}
查
询条件主要通过TreeNode进行显式建模,使得程序有可能对它进行进一步的处理。例如,在DataSource处理Query之前,权限配置模块可以
将附加约束直接追加到现有查询条件之后,实现对数据权限的行级控制。因为把Fields明确分离出来,我们也可以做到对权限的列级控制。
Query类的使用示例如下:
Query.begin().fields(TEST_FIELDS)
.condition().eq(ID,"3")
.end().resultType(IQueriable.TYPE_ROW_MAP)
.findOne(dataSource).mapValue();
这里的调用接口的设计基本遵循与SQL类相同的风格,只是面向主题域而不是直接针对SQL语言的封装。
分享到:
相关推荐
React查询生成器由于需要在React中内置更多自定义查询构建器工具,我开发了一个开源查询构建器,它将根据所需的输入类型输出结构化的JSON查询对象,该对象由规则,规则组和许多字段组件组成。入门要开始使用,只需将...
SQL 的全称是Structured Query Language,即结构化查询语言。1986年ANSI采用SQL语言作为关系数据库系统的标准语言 ,后被国际化标准组织(ISO)采纳为国际标准。SQL语言使用方便、功能丰富、简洁易 学,是操作...
到中级的动 态数据透视表的创建、数据透视表函数 GETPIVOTDATA 的使用、在数据透视表中执行计算项、 可视化透视表切片器等技能点,再到高级部分的使用 SQL 语句导入外部数据源创建透视表、使用 Microsoft Query创建...
1.代码结构化梳理。 2.修复一些错误和需要改进的地方。 3.增加速度开关。如果你的服务器内存较大,请将配置文件 resourcesApplication_zh_CN.properties 中的lerx.data.query.mod 的值改为1 4.后台增加问答系统...
SQL(Structured Query Language结构化查询语言)是一种数据库查询语言和程序设计语言,主要用于管理数据库中的数据,如存取数据、查询数据、更新数据等。 SQL是专为数据库而建立的操作命令集,是一种功能齐全的数据库...
DSQ:Corel QUERY(查询)文件 DST:刺绣机图形文件 DSW:Microsoft Developer Studio工作区文件 DTA:World Bank(世界银行)的STARS数据文件 DTD:SGML文档类型定义(DTD)文件 DTED:地面高度数字数据(图形...
Query:查询,管理员进行信息的查询。 工作人员使用系统的协作图如图2-5所示。 图2-5工作人员操作协作图 三、类与接口 类图是系统设计核心的部分,明确基本的类以及相关的关系有助于我们进一步工作,这也是进入...
SQL(Structured Query Language)结构化查询语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。同时也是数据库脚本文件的扩展名。 SQL语言主要包含5个部分 数据定义...
4、结构化的同步,可以设定任务计划,按照特定的时间进行同步作业,并对同步数据进行校验。 5、工作管理器、计划备份、以及通知服务等。 6、可视化查询编辑器 7、基于C++和MySQL API编程; 8、方便快捷的数据库同步...
2、方便快捷的数据库同步与数据库结构同步工具; 3、易 用的数据库、数据表备份与还原功能; 4、支持导入与导出XML、HTML、CSV等多种格式的数据; 5、直接运行批量 SQL 脚本文件,速度极快; 6. 智能SQL语句自动完成...
著名的 Webyog 公司出品的一款简洁高效、功能强大的图形化 MySQL 数据库管理工具。使用 SQLyog 可以快速直观地让您从世界的任何角落通过网络来维护远端的 MySQL 数据库。 SQLyog 相比其它类似的 MySQL 数据库管理...
作为一款MYSQL数据库的管理工具软件,SQLyog主要用于使用GUI界面对MYSQL进行管理,包含MySQL Query Browser,phpMyAdmin和其他前后台管理以及MySQL Clients为一体。 SQLyog 相比其它类似的 MySQL 数据库管理工具其有...
4.17.1 导入样式表 154 4.17.2 包含样式表 155 4.18 模板规则冲突的解决 156 4.19 [xsl:output]元素 157 4.19.1 指定输出文档的格式 158 4.19.2 输出xml声明 158 4.19.3 输出文档类型定义 159 4.19.4 输出...
4.17.1 导入样式表 154 4.17.2 包含样式表 155 4.18 模板规则冲突的解决 156 4.19 [xsl:output]元素 157 4.19.1 指定输出文档的格式 158 4.19.2 输出xml声明 158 4.19.3 输出文档类型定义 159 4.19.4 输出...
结构化查询语言(Structured Query Language,简称SQL)是用来访问关系型数据库一种通用语言,属于第四代语言(4GL),其执行特点是非过程化,即不用指明执行的具体方法和途径,而是简单地调用相应语句来直接取得...
4.17.1 导入样式表 154 4.17.2 包含样式表 155 4.18 模板规则冲突的解决 156 4.19 [xsl:output]元素 157 4.19.1 指定输出文档的格式 158 4.19.2 输出xml声明 158 4.19.3 输出文档类型定义 159 4.19.4 输出...
4.17.1 导入样式表 154 4.17.2 包含样式表 155 4.18 模板规则冲突的解决 156 4.19 [xsl:output]元素 157 4.19.1 指定输出文档的格式 158 4.19.2 输出xml声明 158 4.19.3 输出文档类型定义 159 4.19.4 输出...
与关系数据查询、多维数据库查询和基于XML的XQuery、XPath不同,全文检索技术主要处理对象是基于超大 数据量的文本数据和结构化的二进制数据上类似LIKE的模糊查询。主要区别见下表。 表1:全文检索与关系数据库...
将渐变选择器导入到您的项目中,如 pub. 实例化渐变小部件: var gradientPicker = new GradientPicker(gradient: color, width: 180); query("#gradient_picker").nodes.add(gradientPicker.elementBase); ...