2016-03-23 7 views
0

私のコード(私はその前に接続している):私の代わりに、JDBC Javaでの私のパラメータ文字列の@POを持って

private String loginPasswordRequest = "SELECT * FROM animateurs WHERE email =?"; 

public static ResultSet SendRequest(String request, String parameter)throws SQLException{ 
    Connection con = ConnectionToDatabase(); 
    PreparedStatement stmt = con.prepareStatement(request); 
    stmt.setString(1, "[email protected]"); //parameter 

    ResultSet result = stmt.executeQuery(); 
    return result; 
} 

私は、次のリクエスト持っているのリクエストを実行する場合:

SELECT * FROM animateurs WHERE email [email protected]  

これはSQLServerによって実行される要求です 私のパラメータが表示されない理由はわかりません。 1つのパラメータでselectを作成するだけで済みますが、うまくいきません。

+0

'Statement'と' Connection'が漏れて 'ResultSet'が返ってきましたか、 tはプレースホルダを示しますか? 'emailate'があなたのパラメータにマッチするレコードが' animateurs'テーブルにありますか?クエリはクエリマネージャから機能しますか? –

+0

私はSql Server Managment Studioで1つの結果を得ました。問題は、私の実際のパラメータrigthの代わりにパラメータ@POが実行されて解釈される前に解釈されます。 – SoulM

+1

「動作しません」と定義します。例外が発生した場合(例外が発生した場合)、空の結果を得るか、 ? SQL Serverドライバは、いくつかの前処理を行い、位置パラメータを名前付きパラメータで置き換える(つまり、最初の位置パラメータに '@ P0'を使用する)ように見えます。私の期待は、SQL Serverがパラメータ値を別々に送信するため、(ここではリソースが漏れているという事実を除けば)これが機能することです。 –

答えて

0

私はそれを見つけましたが、結果は全く空ではありませんでした。結果セットに1つの結果があってもresult.nextにしばらくする必要がありました

+0

結果セット(常に)に 'next()'を呼び出さなければならないので、JDBCに関するいくつかのチュートリアルに従ってAPIドキュメントを読むことを強くお勧めします。本当にJDBCの基本です。 –

関連する問題