我有一个表出席,其中列是id,姓名,日期,状态。这就是我的问题所在,如果我在我的html页面中选择了两个日期(开始日期和结束日期),我想要也可以在日期范围内生成一个学生的出勤报告,名称也不是现在的天数。如何写出选择学生姓名的查询和特定学生的当天数。请提前帮助。/ p>
我写了如下的查询。
String sql = "select student_name,count(status) from attendance where attendance.date>=? and attendance.date<=? and attendance.status=?";
try {
Class.forName("com.mysql.jdbc.Driver");
Connection con = DriverManager.getConnection(
"jdbc:mysql://localhost:3306/test_schema", "root", "root");
String sql = "select student_name from attendance where attendance.date>=? and attendance.date<=? and attendance.status=?";
PreparedStatement pstmt = con.prepareStatement(sql);
//pstmt.setString(1, "Present");
pstmt.setString(1, stDate);
pstmt.setString(2, enDate);
pstmt.setString(3, "Present");
rs = pstmt.executeQuery();
while (rs.next()) {
java.sql.ResultSetMetaData rsmd=rs.getMetaData();
int colCount = rsmd.getColumnCount();
System.out.println("colCount :" + colCount);
System.out.println("count>>"+colCount);
StudentMark ge = new StudentMark();
ge.setStudentName(rs.getString(1));
stList.add(ge);
}
out.print(stList);
out.close();
} catch (Exception e) {
System.err.println(e.getMessage());
}
答案 0 :(得分:1)
您可以使用ResultSetMetaData
获取任何select
查询结果的列数。
ResultSet rs= ... //Statement's result.
ResultSetMetaData rsmd= rs.getMetaData();
int colCount = rsmd.getColumnCount();