//以下代码没有声明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然后依然根据字段名取出相应的值