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 = 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的值有效(非空)。

于 2012-05-31T16:21:55.853 回答
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 回答