代码
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);可以打个断点看看