zoukankan      html  css  js  c++  java
  • ResultSet转换List或直接遍历解决null问题

    //以下代码没有声明List tempList = new ArrayList(); ResultSet rs = null; String cols_name = "";
    //根据sql语句得到ResultSet后变量都声明了就可以正常运行
    //依赖包资源import java.text.DecimalFormat;
    //          import java.sql.*;
    //          import java.util.*;


              int count=0;
              DecimalFormat myFormatter = new DecimalFormat("0.##");

              //将数字格式化为保留小数点两位,但不补齐小数点后两位,也就是不会因为本身是整数而补小数点后的零
              ResultSetMetaData md = rs.getMetaData();

             //检索此ResultSet对象的列的编号、类型和属性返回此ResultSet对象的列的描述
                while (rs.next())//遍历所有行
                {
                    Map data = new HashMap();
                    count++;
                    for (int i = 0; i < md.getColumnCount(); i++)//遍历此行的所有列
                    {
                        cols_name = md.getColumnName(i + 1);//取出列名
                        Object val= rs.getObject(cols_name);
                        if (val instanceof Number)

             //如果是数字类型(可以转化为数字objtoint的意思)则格式化为标准数字格式
                        {
                            val= myFormatter.format(val);
                        }
                            val= (val==null)?"":val;//格式化空值
                        data.put(cols_name, ""+val);

                    }
                    tempList.add(data);

             //list中没行都是一个map可以list指向的行可以根据字段名去map中取值
                 }
             //以上是遍历resultset并将其转换为list
              
                if (tempList!=null && tempList.size()>0)
                for (int i=0;i<tempList.size();i++)
                {
                     Map myMap=(Map)tempList.get(i);
                     String aa=(String)myMap.get("aa");
                     //可以使用aa了
                 }
              //以上是遍历list的方法,其中aa为列名
          
    ========================================华丽分割线============================================
          
                DecimalFormat myFormatter = new DecimalFormat("0.##");
                ResultSetMetaData md = rs.getMetaData();
                while (rs.next())
                {
                    for (int i = 0; i < md.getColumnCount(); i++)
                    {
                      cols_name = md.getColumnName(i + 1);
                        Object val= rs.getObject(cols_name);
                        if (val instanceof Number)
                        {
                            val= myFormatter.format(val);
                        }
                            val= (val==null)?"":val;

                    }
                }

     //以上是不转换为list单独遍历resultset并将数字格式化将null转换为""
      //注意不能用这种方式修改resultset只能用在循环输出val的值处理后就要输出了,可以做一些累加工作
      //如果想遍历改造resultset就用上面的转换为list的方法,之后可以再遍历list然后依然根据字段名取出相应的值    

  • 相关阅读:
    Guava集合-BiMap
    Guava 集合框架
    Guava 学习计划
    解决Gmail/GCalendar图标丢失问题
    Spring cloud系列之win10 下安装 ZooKeeper 的方法
    Spring cloud系列之Zuul配置项中sensitiveHeaders和ignoredHeaders
    Spring Cloud系列之客户端请求带“Authorization”请求头,经过zuul转发后丢失了
    错误:this is incompatible with sql_mode=only_full_group_by
    码云插件Gitee:Couldn't get the list of Gitee repositories
    Redis开发规范
  • 原文地址:https://www.cnblogs.com/tv151579/p/2783443.html
Copyright © 2011-2022 走看看