私の問題で声明のような準備:JavaはJavaで準備された文について、整数
SELECT TrackingId FROM table where TrackingId = 5735053
TrackingIdは、データベース内の整数列です。私は質問を次のように変更します:
SELECT TrackingId FROM table where TrackingId = '5735053'
自動で変換するとうまくいきます。次のクエリにも同じです:
SELECT TrackingId FROM table where TrackingId LIKE '%5735%'
これは正常に動作し、データベースは結果を検出しています。 javaで私は、クエリのユーザーの入力値を渡したいと思います。これは、int型と文字列などの文で動作しますが、ない:
String query = "SELECT AnyString FROM table where AnyString like ?";
connectDatabase();
pstmt = connection.prepareStatement(query);
pstmt.setString(1, "%"+input+"%");
result = pstmt.executeQuery();
は、今私は、このステートメントを使用して整数を渡したいと私は多くのことが、常に0の結果を試してみました。
String query = "SELECT AnyInt FROM table where AnyInt like ?";
connectDatabase();
pstmt = connection.prepareStatement(query);
pstmt.setString(1, "%"+input+"%");
result = pstmt.executeQuery();
をしかし、私は私のデータベースにクエリを入力した場合は、それが正常に動作し、彼は結果を発見されたプログラムの開発:これは動作しません。誰もがここで私を助けることができますか?
'input'の値が何であるかを調べるためにデバッグしましたか?これは私にとって正しいようです。 –
フィールドをvarchar:cast(AnyInt as varchar)またはパラメータ:cast(?as varchar)にキャストしようとすることができます。私はパラメータをキャストすることがSQL Serverによってサポートされていることを100%確信していません。 –
お返事ありがとうございます。あなたの答えは正しいです。しかし、私は自分のJavaコードで間違いを発見し、それもキャストなしで動作します。 –