Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java应用程序不从本地数据库读取数据_Java_Mysql - Fatal编程技术网

Java应用程序不从本地数据库读取数据

Java应用程序不从本地数据库读取数据,java,mysql,Java,Mysql,我正在尝试使用NetBeans在Java中创建一个简单的登录表单。 插入user和pass并按下Login按钮后,输出窗口显示: java.lang.NullPointerException at mms.Login.LoginLblMouseClicked(Login.java:85) at mms.Login.access$000(Login.java:9) at mms.Login$1.mouseClicked(Login.java:45) at java.awt.Component.pr

我正在尝试使用NetBeans在Java中创建一个简单的登录表单。 插入user和pass并按下Login按钮后,输出窗口显示:

java.lang.NullPointerException
at mms.Login.LoginLblMouseClicked(Login.java:85)
at mms.Login.access$000(Login.java:9)
at mms.Login$1.mouseClicked(Login.java:45)
at java.awt.Component.processMouseEvent(Component.java:6508)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3320)
at java.awt.Component.processEvent(Component.java:6270)
at java.awt.Container.processEvent(Container.java:2229)
at java.awt.Component.dispatchEventImpl(Component.java:4861)
at java.awt.Container.dispatchEventImpl(Container.java:2287)
at java.awt.Component.dispatchEvent(Component.java:4687)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4501)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422)
at java.awt.Container.dispatchEventImpl(Container.java:2273)
at java.awt.Window.dispatchEventImpl(Window.java:2719)
at java.awt.Component.dispatchEvent(Component.java:4687)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:735)
at java.awt.EventQueue.access$200(EventQueue.java:103)
at java.awt.EventQueue$3.run(EventQueue.java:694)
at java.awt.EventQueue$3.run(EventQueue.java:692)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
at java.awt.EventQueue$4.run(EventQueue.java:708)
at java.awt.EventQueue$4.run(EventQueue.java:706)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:705)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)
我知道这个错误意味着ResultSet变量等于null(因此在数据库中找不到特定的用户),但我确信代码是正确的:

这是登录事件:

private void LoginLblMouseClicked(java.awt.event.MouseEvent evt) {                                      
    try
    {
        Database DB = new Database();

        String Username = UsernameFld.getText();
        String Password = PasswordFld.getText();

        if(DB.Connection())
        {
            String Query = "SELECT * FROM user WHERE username = '"+Username+"'" AND password = '"+Password+"';

            DB.setResultSet(DB.getStatement().executeQuery(Query));

            int nRecords = 0;

            if(DB.getResultSet().next())
            {
                nRecords++;
            }

            if(nRecords == 1)
            {
                System.out.println("User found.");
            }
            else
            {
                ErrorLbl.setText("User not found - Please check password field.");
            }
        }
        else
        {
            ErrorLbl.setText("Server Off.");
        }
    }
    catch(Exception e)
    {
        e.printStackTrace();
    }
}     
注意:
Connect()
函数位于
数据库
类中,它返回一个布尔类型。 以下是函数:

public boolean Connection()
{
    try
    {
        Connection = DriverManager.getConnection(URL, dbUser, dbPass);
        return true;
    }
    catch(SQLException e)
    {
        System.out.println();
        return false;
    }
}
URL
字符串具有值
jdbc:mysql://localhost:3306/medical_supplies
dbUser
dbPass
是“根”和“”

医疗用品数据库中的表具有以下属性:

  • 用户名
  • 密码
  • 其中唯一的记录是:

    username = 'admin' and password = 'admin'
    
    我已经在项目中包含了连接驱动程序,所以这不是问题所在


    我希望有人能帮助我!谢谢大家

    你能指出你代码中哪一行是85号的吗?staktrace说你在mms.Login.LoginLblMouseClicked(Login.java:85)的第85行
    出现空指针异常,但是在没有访问你的源代码的情况下,几乎不可能猜测哪一行是85。我很抱歉迟到了,但这段时间我一直很忙。无论如何,我解决了这个问题:我没有初始化连接函数中的语句变量。当我意识到这一点时,我觉得自己真的很傻。无论如何,谢谢你!