0

次のJavaコードを実行します。

String qry = "SELECT QUOTE(?) AS cleaned";
PreparedStatement getQuote = MySQLSingleton.getInstance().conn.prepareStatement(qry);
getQuote.setString(1, clean_string);
ResultSet resultSet = getQuote.executeQuery();
System.out.println("FIRST: " + resultSet.first());
System.out.println("GET STRING: " + resultSet.getString(1));

これの出力は次のとおりです。

FIRST: true
GET STRING: null

resultSet.getString(1);。以外は何もresultSet.getString("cleaned");返しませんnull

編集: MySQLでステートメントを直接実行すると、問題なく機能します。

4

2 に答える 2

1
String qry = "SELECT QUOTE(?) AS cleaned";
PreparedStatement getQuote = MySQLSingleton.getInstance().conn.prepareStatement(qry);
getQuote.setString(1, clean_string);
ResultSet resultSet = getQuote.executeQuery();
resultSet.first();
System.out.println(resultSet.getFetchSize());

あなたのJavaコードでは、それは正しいと思います。

編集:

GetFetchSize()のレコード数は返されないことを知っておく必要がありResultSetます。GetFetchSize()データベースが一度にアプリケーションにフェッチするレコードの数を返します。デフォルトでは、フェッチサイズは10です。したがって、データベーステーブルを操作しないため、fetchは0を返します。

于 2012-05-31T15:47:54.843 に答える
1

あなたのコードは私にとって非常にうまく機能します。

String qry = "SELECT QUOTE(?) AS cleaned";
PreparedStatement getQuote = con.prepareStatement(qry);
getQuote.setString(1, "sdafsdaf");
ResultSet resultSet = getQuote.executeQuery();
System.out.println("FIRST: " + resultSet.first());
System.out.println("GET STRING: " + resultSet.getString(1));

出力:

最初: 真

文字列を取得: 'sdafsdaf'

私のバージョンでの唯一の変更は変数clean_stringです。clean_stringの値が有効であること (null でないこと) を確認できますか。

于 2012-05-31T16:21:55.853 に答える