Map遍历、sql查询

1、map的遍历有两种方法,一种是keySet,另一种是entrySet,如下:

//方法一  

 Set<String> set = map.keySet();   

for (String s:set) {  

  System.out.println(s+“,”+map.get(s));

}

 //方法二  

 Set<Map.Entry<String, String>> entryseSet=map.entrySet();  

 for (Map.Entry<String, String> entry:entryseSet) {  

   System.out.println(entry.getKey()+“,”+entry.getValue());  

 }  

在遍历的数据较少时,两者没有什么区别,但是数据较多时方法二要比方法一的效率要高,所以以后写程序开发的时候,这点小细节还是要注意的。

2、这周在做项目的时候需要联合查询表数据,比如获取用户添加和未添加的软件,虽然不难,但是学到了另外一种思路就是在使用sql语句进行查询的时候可以自动产生一列,我的项目中是根据当前登录用户的编号查询该用户添加和未添加的桌面软件,可以通过一下两种方式实现:

(1)select * from (select * from tb_software where state=2) a left join tb_user_software u on a.software_id = u.software_id and u.user_id=1;

(2)

select * from (select CONCAT(“yes”) as is_add,software_id,software_name,picture_name,bhri,remark from tb_software where state = 2 and software_id in(select software_id from tb_user_software where user_id=1)
union
select CONCAT(“no”) as is_add,software_id,software_name,picture_name,bhri,remark from tb_software where state = 2 and software_id not in(select software_id from tb_user_software where user_id=1)
) as t

第一句是根据用户编号判断是否软件已添加,而第二句是查询时便多产生一列,可以直接读取结果。

转载于:https://www.cnblogs.com/zhli/archive/2013/02/01/2889617.html

文章知识点与官方知识档案匹配,可进一步学习相关知识MySQL入门技能树SQL高级技巧CTE和递归查询31269 人正在系统学习中 相关资源:【内存遍历工具】Cheat.Engine.V5.4.简体中文版-专业指导文档类…

来源:weixin_30435261

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2013年1月1日
下一篇 2013年1月1日

相关推荐