zoukankan      html  css  js  c++  java
  • 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

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

  • 相关阅读:
    jmeter中设置线程数与设置集合点的区别
    在linux系统中如何通过shell脚本批量设置redis键值对
    服务器带宽上行与下行的区别
    性能测试之Jmeter插件安装
    sqlserver 启用邮箱服务
    sqlserver 自定义字符串分割函数.
    C# 重写思想
    CSS控制鼠标滑过时的效果
    js实现图片自动切换效果。
    SQL Server Management Studio 使用作业实现数据库备份
  • 原文地址:https://www.cnblogs.com/zhli/p/2889617.html
Copyright © 2011-2022 走看看