mysql查询中的nullpointerexception

bis0qfac  于 2021-06-17  发布在  Mysql
关注(0)|答案(2)|浏览(268)

这个问题在这里已经有答案了

什么是nullpointerexception,如何修复它(12个答案)
两年前关门了。
我是java编程新手,我正在做一个暗示使用java和mysql的项目,我无法修复这段代码中的nullpointerexception,有人能帮我吗?
这是完整的代码,连接部分工作正常,经过测试

package database;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;

import database.mainConnection;

public class userUtils extends mainConnection {

    public static void main(String[] args ) throws Exception {
        userLogin("mattia",hash("password");

    }

    /*public static Boolean registerUser(String name, String surname, String username, String email, String password, String Affiliation, String dateOfBirth) throws Exception {
        Connection con = getConnection();
        // 0000-00-00 format date

        PreparedStatement query = con.prepareStatement("INSERT INTO users (UserID, Username, Email, Password, Name, Surname, BirthDate, Affiliation) VALUES (?,?,?,?,?,?,?,?)");

        query.executeUpdate();
        return false;
    }*/

    public static Boolean userLogin(String username, String password) throws Exception {
        Boolean bool = null;
        try{
            Connection con = getConnection();
            PreparedStatement query = con.prepareStatement("SELECT * FROM users WHERE Username=? AND Password=?");
            query.setString(1, username);
            query.setString(2, password);

            ResultSet result = query.executeQuery();

            if(result.next()) {
                bool = true;
            }

            } catch(Exception e) {
                e.printStackTrace();
                }
        return bool;
    }
}

它也不会返回任何结果,但我猜这是由于nullpointerexception
错误指向

con.prepareStatement("SELECT * FROM users WHERE Username=? AND Password=?"); and at a printlnine where i invoke the method
klr1opcd

klr1opcd1#

不要给bool变量赋值为null或false,而是尝试将boolean作为类和bool的返回类型的原始数据类型,而不是 Package 类boolean。

Boolean bool = false;
x4shl7ld

x4shl7ld2#

Boolean bool = null;

Connection con = getConnection();

应该是问题所在。
如果结果为空, boolnull 并通过函数返回。
并检查 getConnection() 不为空。

相关问题