Java 将结果集数据转换为饼图(Google图表)格式
JDBC的resultset的输出为: 我需要将其转换为: 名为data的Stringbuffer,用于保存Java 将结果集数据转换为饼图(Google图表)格式,java,json,jdbc,charts,google-visualization,Java,Json,Jdbc,Charts,Google Visualization,JDBC的resultset的输出为: 我需要将其转换为: 名为data的Stringbuffer,用于保存 [ ['Tiles', 'Hours per Day'], ['Cabs tile', 1375], ['recharge tile', 3377], ['deals tile', 1603], ['jobs tile', 437],
[
['Tiles', 'Hours per Day'],
['Cabs tile', 1375],
['recharge tile', 3377],
['deals tile', 1603],
['jobs tile', 437],
['education tile', 247],
['shopping tile', 433],
['household tile', 220]
]
我试过使用:
public static StringBuffer data= new StringBuffer();
ResultSet rs //contains data in it.
ResultSetMetaData rsmd = rs.getMetaData();
String col1 = rsmd.getColumnName(1);
String col2 = rsmd.getColumnName(2);
String col3 = rsmd.getColumnName(3);
String col4 = rsmd.getColumnName(4);
String col5 = rsmd.getColumnName(5);
String col6 = rsmd.getColumnName(6);
String col7 = rsmd.getColumnName(7);
String col8 = rsmd.getColumnName(8);
String col9 = rsmd.getColumnName(9);
String col10 = rsmd.getColumnName(10);
data.append("[ ['Tiles', 'Hours per Day'],");
String formatStr = "%n['%s','%s'],";
while(rs.next()){
int total_cols = rs.getMetaData().getColumnCount();
data.append((String.format(formatStr, col4, rs.getString(col4))));//This line is incorrect
}
data.append("]");
请注意,数据取自结果集的第4列,因为绘制饼图需要相同的数据
基本上,需要按列提取resultset中的数据,并且resultset中只有一列,您试图将结果集转换为Json字符串。因此,在java中使用它可以很容易地完成 参考代码
.....
JSONArray jsonArray0 = new JSONArray();
while(rs.next()){
JSONArray jasub = new JSONArray();
jasub.add(col4);
jasub.add(rs.getString(col4));
jsonArray0.add(jasub);
}
System.out.println(jsonArray0.toJSONString());
使用类似这样的循环来迭代结果行中的列:
ResultSetMetaData metaData = resultSet.getMetaData();
int numColumns = metaData.getColumnCount();
for (int i = 1; i <= numColumns; i++) { // columns are one-indexed
String columnName = metaData.getColumnLabel(i);
String value = resultSet.getString(i);
// …
}
ResultSetMetaData=resultSet.getMetaData();
int numColumns=metaData.getColumnCount();
对于(int i=1;我只是写一个循环来迭代所需的列。@qqilihq,你能用代码详细说明一下吗?是的,你是对的,你能用代码详细说明一下吗