代码运行时baocuo

img

代码
import java.io.IOException;
import java.io.InputStream;
import java.sql.*;
import java.util.Scanner;
import java.util.Properties;

public class Login {
public static void main(String[] args) {

    Connection conn=null;
    PreparedStatement pstmt=null;
    ResultSet rs=null;
    Properties properties=new Properties();

    Scanner sc=new Scanner(System.in);
    System.out.println("请输入身份证");
    String sfz=sc.next();
    System.out.println("请输入密码");
    String pwd=sc.next();

    try {
        String filename="database.properties";
        //通过类加载器将配置文件并通过流读取
        InputStream is=Login.class.getClassLoader().getResourceAsStream(filename);
        properties.load(is);

        String driver=properties.getProperty("Driver");
        String url=properties.getProperty("url");
        String user=properties.getProperty("username");
        String password=properties.getProperty("password");

        Class.forName(driver);
        conn = DriverManager.getConnection(url, user, password);
        String sql = "select * from patient where identityNum=? and password=?";
        pstmt = conn.prepareStatement(sql);
        //设置参数
        pstmt.setString(1,sfz);
        pstmt.setString(2,pwd);
        rs = pstmt.executeQuery();
        if(rs.next()){
            System.out.println("登录成功");
        }else{
            System.out.println("登录失败");
        }
    }catch (ClassNotFoundException e){
        e.printStackTrace();
    }catch (SQLException throwables){
        throwables.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }
}

}

首先确认下配置文件的目录结构这样放是不是有问题,其次确认下配置文件中的属性名和你的getProperty方法中是否完全一致,然后打断点看看问题在哪

空指针异常,在代码的32行,这里使用了值为null的变量做了操作,检查下

NullPointerException异常是空指针异常就是引用本身为空,却调用了方法,这个时候就会出现空指针异常。
提示信息在32行,Class.forName(driver);可以打个断点看看