如何解决ResultSet来自UPDATE没有数据
这是不可能的,您必须将查询分开,以获得可以使用过程或函数的最佳解决方案。
- 程序应采取
lectureID
- 返回结果,在这种情况下,它应该是多个值,您可以阅读如何在mysql中从存储过程中检索多行?知道如何使用过程返回多个值
解决方法
当executeQuery函数运行,sql语句正常工作并在sql编辑器上运行时,给出正确的结果时,会发生问题。当它在jdbc上运行时,不会执行。该连接接受多个查询。
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。没有数据。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。