java查询mysql数据库时rs.next()异常

想先在jpanel上输出数据库第一条的内容,再添加jbutton并给jbutton设置监听器,通过点击jbutton显示数据库下一条内容,
输出第一条内容正常,数据库中下一条数据不为空,但点击jbutton就会报错
代码如下 
public Mark(String s){
    this.setVisible(true);
    this.setResizable(true);
    this.setExtendedState(JFrame.MAXIMIZED_BOTH);
    this.setTitle("试卷批阅");
    this.setBounds(360,110,800, 600);

        dbconn = new QuestionBank();
        conn = dbconn.getConnection();
        String sql = "select * from "+s;
        PreparedStatement pstm = null;
        try {
            pstm = conn.prepareStatement(sql);
            ResultSet rs = pstm.executeQuery();
            rs.next();
            name = rs.getString("name");
            chooseGrade = rs.getString("chooseGrade");
            answer1 = rs.getString("answer1");
            answer2 = rs.getString("answer2");
           
        }
        catch (SQLException ex) {
            ex.printStackTrace();
        }



        temp = new JPanel();
        temp.setLayout(new GridLayout(2,10));
        exam = new JScrollPane(temp);
        this.add(exam);

        name1 = new JPanel();
        name1.setLayout(new GridLayout(6,1));
        temp.add(name1);
        name1.add(new JLabel("姓名 "+name));
        name1.add(new JLabel("选择题分数 "+chooseGrade));
        name1.add(new JLabel("主观题分数"));
        zggr = new JTextField();
        name1.add(zggr);
        next = new JButton("下一个");
        name1.add(next);
        temp.add(new JTextArea(answer1));
        temp.add(new JTextArea(answer2));
        
        next.addActionListener(new ActionListener()
        {
            public void actionPerformed(ActionEvent e)
            {
                try {
                    showAnswer();
                } catch (SQLException ex) {
                    ex.printStackTrace();
                }
            }});



}

public void showAnswer() throws SQLException {
        if(rs.next()){
        name = rs.getString("name");
        chooseGrade = rs.getString("chooseGrade");
        answer1 = rs.getString("answer1");
        answer2 = rs.getString("answer2");
        
        temp.removeAll();
        temp.repaint();
        temp.validate();

        name1 = new JPanel();
        name1.setLayout(new GridLayout(6, 1));
        temp.add(name1);
        name1.add(new JLabel("姓名 " + name));
        name1.add(new JLabel("选择题分数 " + chooseGrade));
        name1.add(new JLabel("主观题分数"));
        zggr = new JTextField();
        name1.add(zggr);
        next = new JButton("下一个");
        name1.add(next);
        next.addActionListener(new ActionListener()
        {
            public void actionPerformed(ActionEvent e)
            {
                try {
                    showAnswer();
                } catch (SQLException ex) {
                    ex.printStackTrace();
                }
            }
        });
        temp.add(new JTextArea(answer1));
        temp.add(new JTextArea(answer2));
        
       }

 

String sql = "select * from "+s;

打印sql出来看看,拿到数据库里面执行一下,看看SQL语句是否合法,查询失败了。

私信我,远程帮你看看

您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632

非常感谢您使用有问必答服务,为了后续更快速的帮您解决问题,现诚邀您参与有问必答体验反馈。您的建议将会运用到我们的产品优化中,希望能得到您的支持与协助!

速戳参与调研>>>https://t.csdnimg.cn/Kf0y