java - 为什么 ResultSet 不为空,但我无法从 ResultSet 中获取数据

标签 java mysql

public List<Course> searchCourse(String name) {
        List<Course> list = null;
        Course course = null;
        PreparedStatement pstmt = null; 
        ResultSet rs = null,rs1 = null;

        String sql = "select username,course_name from view_teacourse where username=? or course_name=? ";

        try{
            pstmt = conn.prepareStatement(sql);
            pstmt.setString(1, name);
            pstmt.setString(2, name);
            rs = pstmt.executeQuery();
            while(next()){
                String sql1 = "select * from courseinfo where course_name=?";
                pstmt.setString(1, rs.getString("cousre_name"));
                rs1 = pstmt.executeQuery();
                while(rs1.next()){
                    course.setCourseid(rs.getInt("course_id"));
                    course.setCourseName(rs1.getString("course_name"));
                    course.setCourseScheme(rs.getString("course_scheme"));
                    course.setCourseBook(rs.getString("course_book"));
                    course.setCourseTerm(rs.getString("course_term"));
                    course.setIntroduction(rs.getString("introduction"));
                    course.setStartTime(rs.getTimestamp("start_time"));
                    course.setEndTime(rs.getTimestamp("end_time"));
                    course.setValidation(rs.getBoolean("validation"));
                    course.setCourseType(rs.getInt("coursetypeid"));
                    list.add(course);
                }
            }
        }catch(Exception e){
            e.printStackTrace();
        }finally{
            DBBase.releaseResultSet(rs1);
            DBBase.releaseResultSet(rs);
            DBBase.releaseStatement(pstmt);
            DBBase.releaseConnection(conn);
        }
        return list;
    }

rs.next() 的值越来越假。它不能进入​​ while 循环。但是如果我写 rs.wasNull() 那么我又得到了 false。所以我很困惑。我可以在我的数据库中使用相同的 SQL 获得正确的结果。当它在 java 文件中时,它不起作用!我找不到哪里错了!

最佳答案

while(next()){ 需要是 while(rs.next()){,不是吗?

(是的,但是@duffymo 的回答是你应该注意的)

关于java - 为什么 ResultSet 不为空,但我无法从 ResultSet 中获取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16146433/

相关文章:

mysql - 我如何将分隔符作为 MySQL GROUP_CONCAT 中的变量传递?

mysql - 对于这个 CakePHP 应用程序,我的模型关系应该是什么?

php - 使用 php 检查 mysql 日期时间是否 > 1 小时

Java 通用通配符边界不起作用

java - eclipse jdt 从命令行导入项目

java - 是否可以知道 SWT 图像是灰度图像还是 RGB 图像?

php - 安排一个 php 页面调用 mysql 中的存储过程每 x 秒运行一次

C# Mysql - 在异步等待服务器的数据库查询上使用锁

java - 在 Spring ,有没有办法按名称找到路线?

java - Java 中 equals() 方法的逻辑运算符有更优雅的语法吗?