Getter方法返回null

时间:2017-08-07 12:52:12

标签: java sql jdbc getter-setter

我正在使用JDBC。在之前的jForm中,我正在设置当前使用其凭据登录的用户的用户名,并将其传递给以下内容。

public void setUser(String user) {   
    this.username = user;
}

private String getUser() {
    return username;
}

然后我将它传递给我在下面的sql语句

PreparedStatement st;
ResultSet rs;
Connection conn;
try {
    String query = "SELECT * FROM PAYMENTS WHERE USERNAME = (?)";
    conn = mq.getConnection();
    st = conn.prepareStatement(query);
    st.setString(1, getUser());
    rs = st.executeQuery();
} catch (SQLException ex) { 
    Logger.getLogger(MainView.class.getName()).log(Level.SEVERE, null, ex);
} 

运行该语句时,我收到一个null结果。虽然我在jLabel中使用了相同的getter方法,但它工作正常。我不知道为什么我收到空。

  if (rs.next()) {
            mv.setVisible(true);
            mv.setUser(jTextField1.getText());
            this.dispose();
        } else {

这是我在之前的jForm中调用setter的地方。

1 个答案:

答案 0 :(得分:0)

首先,确保数据库中的表确实包含记录。

如果为true,则尝试将从getUser()返回的String存储到String变量中。

String user = getUser();
st.setString(1, user);

如果没有锻炼,请尝试在查询中首先附加数据库的名称,如下所示:

String query = "SELECT * FROM DATABASE_NAME.PAYMENTS WHERE USERNAME = (?)";