ResultSet来自UPDATE.没有数据 [英] ResultSet is from UPDATE. No Data

查看:233
本文介绍了ResultSet来自UPDATE.没有数据的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

当executeQuery函数运行,sql语句正常工作并在sql编辑器上运行时给出正确的结果时,会发生问题.当它在jdbc上运行时,不会执行.该连接接受多个查询.

The problem occurs when executeQuery function runs, the sql statement is work correctly and gives correct results when it is runned on the sql editor. When it is runned on jdbc it is not executed. The connection accepts multi queries.

String query = "set @countOfLectureGrade = (SELECT Count(goc.Affect) FROM GradeOfCourse goc WHERE goc.LectureID = ?);" 
                + "SELECT u.SchoolID, u.Name, u.Surname, u.Role, u.Email, " 
                + "CASE WHEN @countOfLecture = 0 then 0 " 
                + "ELSE AVG(0.01 * goc.Affect * gos.Grade) " 
                + "END AS Average "  
                + "FROM GradeOfCourse goc, GradeOfStudent gos, User u, CourseOfStudent cos "
                + "WHERE " 
                + "(gos.CourseGradeID = goc.GradeID AND u.SchoolID = gos.StudentID AND goc.LectureID = ?) " 
                + "OR (u.SchoolID = cos.SchoolID AND cos.LectureID = ? AND @countOfLectureGrade = 0) " 
                + "GROUP BY u.SchoolID;";


try {
    connection = super.getConnection();
    PreparedStatement sqlStatement = connection.prepareStatement(query);
    sqlStatement.setInt(1, lectureID);
    sqlStatement.setInt(2, lectureID);
    sqlStatement.setInt(3, lectureID);
    ResultSet resultSet = sqlStatement.executeQuery();

java.sql.SQLException:ResultSet来自UPDATE.没有数据.

java.sql.SQLException: ResultSet is from UPDATE. No Data.

推荐答案

这是不可能的,您必须将查询分开,以获得可以使用过程或函数的最佳解决方案.

This is not possible, you have to separate your queries, of for the best solution you can use procedures or function.

  1. 程序应采用lectureID
  2. 返回结果,如果您的结果应该是多个值,则可以阅读如何从mysql的存储过程中检索多行? /a>知道如何使用过程返回多个值

这篇关于ResultSet来自UPDATE.没有数据的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆