2017-08-07 11 views
0

私はJDBCを使って作業しています。以前のjFormでは、私は自分の資格情報で現在ログインしているユーザーのユーザー名を設定し、それを以下に渡します。nullを返すゲッターメソッド

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

private String getUser() { 
    return username; 
} 

そして、私はその文を実行しているとき、私がnullの結果を受けています

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); 
} 

以下の私のSQL文に渡すのです。私はjLabelで同じゲッターメソッドを使用しましたが、うまくいきました。なぜ私がヌルを受け取っているのか分かりません。

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

これは、以前のjFormでセッターを呼び出す場所です。

+1

をあなたは十分なコンテキストを提供していません。より多くのコードを表示する。 –

+0

はセッターの前にゲッターを呼んでいるようです...もっとコードを投稿してください... –

+0

あなたの問題は解決しているのかどうかは不明ですが、 '(?)'を '? 'に置き換えてください。 – davidxxx

答えて

0

まず、データベースのテーブルにレコードが含まれていることを確認します。

trueの場合は、getUser()から返されるStringをString変数に格納してみてください。

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

これはワークアウトをしない場合、次のように、クエリで最初のデータベースの名前を付けてみてください。

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

@ライアン、あなたは上記の解決策を試しましたか? –