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