java map遍历sql查询结果_Map遍历、sql查询

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

//方法一

Set set = map.keySet();

for (String s:set) {

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

}

//方法二

Set> entryseSet=map.entrySet();

for (Map.Entry 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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值