在我的应用程序中,我将颜色存储在我的表emp
中,如下所示:
+---------+------------------+
| emp | id | color |
+---------+------------------+
| hary | 123 | red |
+---------+------------------+
| lary | 125 | green |
+---------+------------------+
| gary | 038 | red |
+---------+------------------+
| Kris | 912 | blue |
+---------+------------------+
| hary | 123 | red |
+---------+------------------+
| Ronn | 334 | green |
+---------+------------------+
现在计算颜色代码出现的次数我写了这个:
select color,count(*) Count
from emp where (color like '%bl%' or color like '%ree%')
group by color
所以我得到的结果就像
+---------------
| color |Count |
+---------------
| red | 3 |
+---------------
| blue | 1 |
+---------------
| green | 2 |
+---------------
现在我想访问每个颜色代码的计数,即单元格值,所以我如何根据java(jdbc)来处理它。我已经在jsp页面中写了这个:
<html
<body>
<div>
<table>
<% while(rs.next()){ %>
<tr>
<th>HDYK Stat</th><th>NUMBER</th>
</tr>
<tr style="color: #0DA068">
<td><%=rs.getString("color") %></td><td><%= rs.getInt("Count")%></td>
</tr>
<tr style="color: #194E9C">
<td><%=rs.getString("color") %></td><td><%= rs.getInt("Count")%></td>
</tr>
<tr style="color: #ED9C13">
<td><%=rs.getString("color") %></td><td><%= rs.getInt("Count")%></td>
</tr>
<%
}
%>
</table>
</div>
</body>
</html>
但重复3次:如红色:3,蓝色:3,绿色:1,红色:1,蓝色:1,绿色:1,红色:2 ...... 关于这方面的任何意见将不胜感激。
答案 0 :(得分:2)
您需要遍历结果集并拉出每个列值。
public static void viewTable(Connection con)
throws SQLException {
Statement stmt = null;
String query =
"select color,count(*) Count from emp where (color like '%bl%' or color like'%ree%') group by color";
try {
stmt = con.createStatement();
ResultSet rs = stmt.executeQuery(query);
while (rs.next()) {
String color = rs.getString("color");
int count = rs.getInt("Count");
System.out.println("Color: " + color + " Count: " + count);
}
} catch (SQLException e ) {
//Something
} finally {
if (stmt != null) { stmt.close(); }
}
}
虽然我不建议通过JSP访问您的结果集,但可以按如下方式完成:
首先遍历所有行并设置其class
属性。
<% while(rs.next()){ %>
<tr>
<th>HDYK Stat</th><th>NUMBER</th>
</tr>
<tr class="<%=rs.getString("color") %>">
<td><%=rs.getString("color") %></td><td><%= rs.getInt("Count")%></td>
</tr>
<%
}
%>
为CSS中的每种颜色定义样式
.red{
color: #0DA068;
}
.blue{
color:#194E9C;
}
.green{
color: #ED9C13;
}
答案 1 :(得分:1)
实际上就像您对emp
,id
或color
一样 - 您只需按名称Count
查找列。也就是说,ResultSet
的大小为3,每行都有两列:color
和Count
。
我假设您已经知道如何在Java中使用JDBC?
干杯,