慕诡 2020-04-12 18:07 采纳率: 100%
浏览 453
已采纳

eclipse写java查询数据的代码,ResultSet 报错 java.lang.NullPointerException?

eclipse+mysql5.7版本。

报空指针错误。

但是为啥会报错?

用statement的时候就没有报错,学用preparestatement的时候就报错了。

这是为什么?


import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Scanner;
import java.sql.PreparedStatement;

public class test {
    private static final String URL = "jdbc:mysql://localhost:3307/student";
    private static final String USERNAME = "root";
    private static final String PWD = "19990210";
    public static void query() {
        Connection connection = null;
        PreparedStatement pstmt = null;
        ResultSet rs = null ; 
        try {
            // a.导入驱动,加载具体的驱动类
            Class.forName("com.mysql.jdbc.Driver");// 加载具体的驱动类
            // b.与数据库建立连接
            connection = DriverManager.getConnection(URL, USERNAME, PWD);
            // c.发送sql,执行【查】
            Scanner input= new Scanner(System.in);
            System.out.println("请输入用户名:");
            String name = input.nextLine() ;
            System.out.println("请输入年龄:");
            String age = input.nextLine() ;
            String sql = "select count(*) from stuinfo where name= ? and age =?"; 
            pstmt = connection.prepareStatement(sql);
            pstmt.setString(1, name);
            pstmt.setString(2, age);
            int count = -1;
            try {
                if(rs.next()) {
                    count = rs.getInt(1) ;
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
            if(count>0) {
                System.out.println("登陆成功!");
            }else {
                System.out.println("登陆失败!");
            }

        } catch (ClassNotFoundException e) {
            System.out.println("111");
            e.printStackTrace();
        } catch (SQLException e) {
            e.printStackTrace();
        } catch(Exception e) {
            e.printStackTrace();
        }
        finally {
            try {
                if(rs!=null) rs.close(); 
                 if(pstmt!=null) pstmt.close();// 对象.方法
                 if(connection!=null)connection.close();
            }catch(SQLException e) {
                e.printStackTrace();
            }catch(Exception e) {
                e.printStackTrace();
            }
        }
    }


    public static void main(String[] args) {
        query() ;
    }
}



报错

  • 写回答

1条回答 默认 最新

      报告相同问题?

      相关推荐 更多相似问题

      悬赏问题

      • ¥15 ubuntu18.04 tty报错&tty界面su/sudo命令无法执行,如何解决?
      • ¥20 关于c语言网络编程,实现传文件和即时聊天
      • ¥20 下面的压缩方法是否可行
      • ¥15 结构体数组读取文件信息失败,读取不了
      • ¥15 kaldi thchs30 训练遇到问题
      • ¥15 shellter无法使用,如何解决?(操作系统-kali)
      • ¥15 matlab动态模态分解程序
      • ¥60 关于渗透及远控的几个问题
      • ¥15 python文本词汇出现次数统计
      • ¥15 使用按键和串口,记录按键在不消抖的情况下触发的次数