1700483920
userList.add(new User(“国庆牛”,82));
1700483921
1700483922
userList.add(new User(“张国庆三”,10));
1700483923
1700483924
userList.add(new User(“李四”,10));
1700483925
1700483926
//定义一个用户查询类
1700483927
1700483928
IUserProvider userProvider=new UserProvider(userList);
1700483929
1700483930
//打印出名字包含”国庆”的人员
1700483931
1700483932
System.out.println(”===名字包含国庆的人员===”);
1700483933
1700483934
//定义一个规格书
1700483935
1700483936
IUserSpecification userSpec=new UserByNameLike(”%国庆%”);
1700483937
1700483938
for(User u:userProvider.findUser(userSpec)){
1700483939
1700483940
System.out.println(u);
1700483941
1700483942
}
1700483943
1700483944
}
1700483945
1700483946
}
1700483947
1700483948
运行结果如下所示:
1700483949
1700483950
===名字包含国庆的人员===
1700483951
1700483952
用户名:苏国庆 年龄:23
1700483953
1700483954
用户名:国庆牛 年龄:82
1700483955
1700483956
用户名:张国庆三 年龄:10
1700483957
1700483958
到目前为止,我们已经设计了一个可扩展的对象查询平台,但是我们还有遗留问题未解决,看看SQL语句,为什么where后面会很长?是因为有AND、OR、NOT这些逻辑操作符的存在,它们可以串联起多个判断语句,然后整体反馈出一个结果来。想想看,我们上面的平台能支持这种逻辑操作符吗?不能,你要说能,那也说得通,需要两次过滤才能实现,比如要找名字包含“国庆”并且年龄大于25岁的用户,代码该怎么修改?如代码清单37-14所示。
1700483959
1700483960
代码清单37-14 复合查询
1700483961
1700483962
public class Client{
1700483963
1700483964
public static void main(String[]args){
1700483965
1700483966
//定义一个规格书
1700483967
1700483968
IUserSpecification userSpec1=new UserByNameLike(”%国庆%”);
1700483969
[
上一页 ]
[ :1.70048392e+09 ]
[
下一页 ]