mysql - 如何在 jdbc 中为列的计数编写查询

标签 mysql jdbc

我有一个表格出勤表,其中列是 id、名称、日期、状态。我的问题是,如果我在我的 html 页面中选择两个日期(开始日期和结束日期),我想生成出勤率日期范围内的学生报告也没有现在的日期。如何编写查询以选择学生的姓名和特定学生的当前天数。提前感谢所有帮助。

我写了如下查询。

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());
    }

最佳答案

您可以使用 ResultSetMetaData 获取任何 select 查询结果的列数。

ResultSet rs= ... //Statement's result.
ResultSetMetaData rsmd= rs.getMetaData();

int colCount =  rsmd.getColumnCount();

关于mysql - 如何在 jdbc 中为列的计数编写查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37649994/

相关文章:

java - 使用 JButton 更新 JTable

azure - 是否可以通过 azure databricks 连接到无服务器 SQL 池?

java - 选择每个用户每天的首次登录时间

java - 在 Apache Geronimo 中安装 Oracle jdbc 驱动程序

MySQL 查询 Select、SUM、LEFT JOIN

php - MySql 外键查询错误

java - 无法使用JDBC解析文件

php - 检查类别是否有父级

mysql - SQL语法插入每千个正整数,从1开始直到100万?

mysql - mysql 上的触发更新第二次运行