我正在使用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的地方。
答案 0 :(得分:0)
首先,确保数据库中的表确实包含记录。
如果为true,则尝试将从getUser()返回的String存储到String变量中。
String user = getUser();
st.setString(1, user);
如果没有锻炼,请尝试在查询中首先附加数据库的名称,如下所示:
String query = "SELECT * FROM DATABASE_NAME.PAYMENTS WHERE USERNAME = (?)";