JDBC结果集的输出是:
我需要将其转换为:
名为数据的Stringbuffer,其中包含
[
['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("]");
请注意,数据来自ResultSet的第4列,因为绘制饼图需要相同,
基本上,结果集中的数据需要按列提取,而resultSet中只有一列
答案 0 :(得分:0)
您尝试将结果集转换为Json字符串。因此可以使用java中的JSON Object轻松完成。
参考代码
.....
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());
答案 1 :(得分:0)
使用这样的循环迭代结果行中的列:
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);
// …
}