如何将pivot查询的自定义变量(@sql)提取到java的resultset
从查询中,我不知道如何检索java的resultset中的值。我想为用户显示考勤报告如何将pivot查询的自定义变量(@sql)提取到java的resultset,java,mysql,Java,Mysql,从查询中,我不知道如何检索java的resultset中的值。我想为用户显示考勤报告 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
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
调用resultset.getXXX()方法对应于您的输出。
ie)您需要三行数据类型int、string、sting,然后调用resultset的结果集。getInt(1)->给出整数值,resultset.getString(2)->给出字符串值,resultset.getString(3)->给出字符串值 你的错误是什么。?确保getXX()方法的索引和im在sql(用户定义变量)中计算第一个查询,并在下一个查询中调用'SELECT attention.present,attention.user_id',@sql',这样我就不知道如何检索值了
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*/
}