3

私は何度かウェブを検索していますが、私を助けることができるものは何も見つかりませんでした(Javaで)。

実際、ハイフンを含むいくつかの参照からいくつかの行をSQL​​テーブルで検索する必要があります。作成された問題は、SQL が私の参照を減算の結果に置き換えることです。列の型は文字列です。

Statement stmt = con.createStatement();
String query = "SELECT * FROM WAREHOUSE WHERE REF LIKE('96-18')" ;
Statement statement = con.createStatement(ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY);

ResultSet rs = statement.executeQuery(query);
while (rs.next()) {
    System.out.println(rs.getString("S_FAMILY"));
}

このコードでは、私の参照を 78 に置き換えており、自然に良い結果を返しません。

エスケープ文字を検索しましたが、見つかりませんでした。

4

2 に答える 2

2

Stringクエリで as パラメータを送信してみてください。これを行うには、を次のように変更する必要がありStatementますPreparedStatement

String query = "SELECT * FROM WAREHOUSE WHERE REF LIKE(?)" ;
PreparedStatement pstatement = con.prepareStatement(query,
            ResultSet.TYPE_FORWARD_ONLY,
            ResultSet.CONCUR_READ_ONLY);
pstatement.setString(1, "96-18");
ResultSet rs = pstatement.executeQuery();

注:変数"96-18"の値として送信する必要がありStringます。ハードコードしないでください。

于 2013-03-21T15:54:49.883 に答える
0

あなたが試すことができます

SELECT * FROM WAREHOUSE WHERE REF LIKE('96\-18') ESCAPE '\'

それが役に立てば幸い

于 2013-03-21T15:56:02.920 に答える