java - 如何将数据透视查询的用户定义变量(@sql)获取到java的结果集

标签 java mysql

从查询中我不知道如何检索 java 的结果集中的值。我想为用户显示考勤报告。

BEGIN
     SET SESSION group_concat_max_len = 1000000000;

      SET @sql = NULL ;
  SELECT
    GROUP_CONCAT(
      DISTINCT CONCAT(
        'max(CASE WHEN attendance.date = '',
        DATE_FORMAT(DATE, '%Y-%m-%d'),
        '' THEN coalesce(p.present, '') END) AS `',
        DATE_FORMAT(DATE, '%Y-%m-%d'),
        '`'
      )
    ) INTO @sql
  FROM
    calendar
  WHERE DATE >= '2015-01-01'
    AND DATE <= '2015-01-31' ;
  SET @sql = CONCAT(
    'SELECT attendance.present,attendance.user_id, ', @sql,'
        from
            (
              select c.date, a.user_id,a.present
              from calendar c
              cross join attendance a
            ) attendance
            left join attendance  p
              on attendance.user_id= p.user_id
              and attendance.date = p.attendance_date
           where attendance.date>='2015-01-01'
              and attendance.date <= '2015-01-31'
          group by attendance.user_id'
  ) ;
PREPARE stmt FROM @sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
END

我在 java 代码中调用了这个过程,现在我想检索值以显示给用户

    String sp_query = "CALL AttendanceTrying()";


     try {
                    connection = DBUtil.getInstance().getConnection();

                    callableStatement = connection.prepareStatement(sp_query);
                    resultSet = callableStatement.executeQuery();

                    while(resultSet.next()) {

                     Attendance attendance = new Attendance();
                    /*here I don't know how to retrieve the values of procedure*/
                    }

最佳答案

根据您的输出调用 resultset.getXXX() 方法。 ie) 你期望三行数据类型为 int, string, sting 然后通过 resultset.getInt(1) -> 给出整数值,resultset.getString(2) --> 给出字符串值,resultset 调用结果集.getString(3) --> 给出字符串值。

关于java - 如何将数据透视查询的用户定义变量(@sql)获取到java的结果集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28337896/

相关文章:

mysql - 处理 OOP 连接到 MySQL 数据库

mysql - 单个查询中的多个更新

java - 如何使用 Hashmap<String, String> 中的键检索 Value?

java - requestparam 的 Spring 验证不起作用

java - Maven jgit JDWP传输错误

mysql - 为下表编写 SELECT 查询

python - MySQLdb : double quotes passed to the query

java - Geotools com.vividsolutions.jts.geom.TopologyException : side location conflict

java - 连接sql时,Jframe的界面不显示

c# - MySQL 中的事务 - 无法回滚