当前位置: 首页 > 知识库问答 >
问题:

java登录引发NullPointerException

尤飞尘
2023-03-14
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class Remote implements ActionListener {
    Action  action;
    Gui     gui;
    String  output;
    Boolean result;

public Remote(Gui g, Action a) {
    action = a;
    gui = g;
    actionListenerMeth(this);
}

@Override
public void actionPerformed(ActionEvent arg0) {
    try {
        String a = gui.username_tf.getText();
        char[] c = gui.password_tf.getPassword();
        String b = new String(c);
        result = action.login(a, b);
    } catch (Exception ee) {
        ee.printStackTrace();
    }
    if (result == true) { //<--this is where Eclipse shows me the error ...
        output = "You are Successfuly Loged In!";
    } else {
        output = "Username or Password is Wrong!";
    }
    gui.result_lb.setText(output);
}

public void actionListenerMeth(ActionListener ae) {
    gui.login_bt.addActionListener(ae);
}

}

下面是Action类中的.login方法:

import java.sql.*;

public class Action {
String url = "jdbc:mysql://localhost/";
String dbName = "test";
String driver = "com.mysql.jdbc.Driver";
String username = "root";
String password = "password";
Boolean result;
///
public Boolean login(String x, String y)
{
    String user_var = x;
    String pass_var = y;
    ///
    try {
        Class.forName(driver).newInstance();
        Connection conn = DriverManager.getConnection(url + dbName, username, password);
        Statement st = conn.createStatement();
        ResultSet res = st.executeQuery("SELECT * FROM java where username='"+user_var+"' and password='"+pass_var+"' ");

        while(res.next())
        {
            String user = res.getString("username");
            String pass = res.getString("password");

            if((user_var.equals(user)) && (pass_var.equals(pass))){
                result = true;
            }else{
                result = false;
            }
        }
        conn.close();
    } catch (Exception e) {
        e.printStackTrace();
    }
    return (result);
}

}

共有1个答案

沈实
2023-03-14

在使用框类型boolean之前,需要学习自动装箱和取消装箱。box类型boolean与unbox类型的布尔值等于true或false。如果使用box类型,则代码应为

Boolean result;    
if (result != null) 

或者如果使用unbox类型,则代码应为

boolean result;
if (result == true) {//TODO}

实际上ubox boolean不需要==。你可以这样申报

if (result){//DO SOMETHING}
 类似资料:
  • 问题内容: 我对从Java代码以编程方式登录OWA(Microsoft Outlook Web Access- 基于Web的电子邮件客户端)并仅检索收件箱未读计数的方法感兴趣—我可以从收件箱网页的HTML源中读取此数字-但问题出在那儿-登录。 本质上,通过查看OWA登录页面的HTML源代码,我可以看到有一个HTML表单元素: 由其中的按钮元素提交: 通过研究clkLgn()脚本,我发现它向文档发送

  • 问题内容: 我想要用Java开发ORKUT(http://www.ORKUT.com)主页的pagesource 。 但是在访问任何页面之前,需要先登录到ORKUT。我该怎么做。它不应介于两者之间 问题答案: 您应该看看Commons HTTP Client 。使用它,您可以发送带有登录数据的POST请求,然后使用会话ID进行进一步处理。

  • 1、概念 单点登录SSO,说的是在一个多系统共存的环境下,用户在一处登录后,就不用在其他系统中登录,也就是用户的一次登录能得到其他所有系统的信任。 2、单点登录的要点 存储信任; 验证信任; 3、实现单点登录的三种方式 (1)以cookie作为凭证 最简单的单点登录实现方式,是使用cookie作为媒介,存放用户凭证。 用户登录父应用之后,应用返回一个加密的cookie,当用户访问子应用的时候,携带

  • 我正在尝试开始登录ElasticSearch,但在服务器中找不到日志,如果启用诊断模式,将引发异常: 我的创业公司就是这样。cs看起来: 以下是我的rogram.cs 这是我在控制器里的东西: 我得到的例外是: 2021-08-19T21:09:15.2793348Z未能创建模板。弹性搜索。网ElasticsearchClientException:请求未能执行。调用:状态代码400来自:PUT/

  • 我正在Java创建一个管理系统。 我有这个登录表。与数据库的连接看起来很好,因为它没有给出错误。 但是当我尝试执行try{}和catch{}时,它给出了一个错误。 我希望有谁能帮助我。 它总是给出: catch(Exception ex){JoptionPane.ShowMessageDialog(null,“登录操作错误”,“登录错误”,JoptionPane.Error_Message);}