javaselect函数_在java中实现sql的select函数功能
在java中实现sql的select函数功能
2007-6-9⽂字⼤⼩:⼤中⼩
在Java中实现sql的select函数功能
――通过简单的机制实现对象数组或集合的选择,过滤,和排序
David RapPOPOrt
摘要
在“filter collections”中,David Rappoport 讲述了⼀个过滤集合对象的简单⽅法。在本⽂中,他扩展了⾃⼰的思想,并展⽰了怎样实现,如同⽤sql的select处理关系数据库中的表⼀样,处理对象数组或集合。他描述了⽤于选择,过滤,排序队形数组或集合的通⽤机制。通过这种机制,可以在java的对象数组或集合上实现sql的select函数功能。(2004-11-22)。
假设你希望以表格的形式,如⾏列的形式,显⽰数组或集合中的数据,并且希望可以选择显⽰的属性。另外,你还希望只显⽰满⾜⼀定条件的数据⼦集,希望⽤⾃定义先后顺序的的排序标准对数据排序。
这种类型的功能是sql的select函数提供的:在sql语句中,可以定义数据源(通过from指定);可以定义返回的属性(通过在select后⾯指定返回列);可以添加条件(where⼦句);并且可以定义数据显⽰的顺序(order by⼦句)。
本⽂讲述了⼀些使你能把这些函数使⽤在任何类型的对象数组和集合上的类和接⼝。为了实现这些函数功能,机制描述使⽤了⼀些设计模式。本⽂提出的⽅法有⼀下⼀些好处:
1。通过本⽂的代码(可以下载。。。),你可以在不影响原始数据的前提下,以不同的⽅式显⽰数据。
2。排序,过滤和选择制定的属性⼗分简单,并且结果能很快得到。
3。通过这些类和接⼝,你可以独⽴的考虑select语句的各部分,从⽽可以产⽣纯净,可复⽤,可扩展的代码。
但是,你可能也会猜到,机制使⽤的是通⽤接⼝,如果你没有很好的理解它,可能会滥⽤它。
机制的类和接⼝
下⾯的列表给出了我们需要的类和接⼝的简短说明。后⽂中,你将看到他们怎么协作,实现设计的功能。每⼀个类和接⼝都⾮常简单,只含有⼀个到两个函数。
1.接⼝Invoker包含唯⼀⼀个函数:public boolean invoke(Object o)。通过这个接⼝,可以封装函数调⽤并返回函数结果。后⽂你将看到他是怎样使⽤的。
2.接⼝Condition也只包含⼀个函数:public boolean passes(Object o)。使⽤这个函数,可以检测任意类是否满⾜任意类型的条件,并返回true或false。同样,你也将在后⽂中看到本接⼝的使⽤。
3.类SelectStatement代表整个select语句,包含select,from,where和order by等⼦句。
4.类SelectInstrUCtion表⽰select⼦句中的⼀个单⼀部分,选定列并指定显⽰时该列的名字。⼀个完整的select⼦句⽤⼀个SelectInstruction对象数组表⽰。
5.类OrderInstruction代表order by⼦句的⼀个单⼀部分,整个order by⼦句由⼀个OrderInstruction对象数组构成。
6.类Executor执⾏包含了整个执⾏逻辑的SelectStatement。
7.类ResultTable代表执⾏SelectStatement后返回的结果集。它⽤Object[][]的形式组织结果数据,从⽽可以容易的转换和显⽰数据。
sql中select是什么意思

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。