打字猴:1.70048392e+09
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 ]  [ 下一页 ]