我运行以下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中运行语句没有问题。
答案 0 :(得分: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,因为您不使用数据库表。
答案 1 :(得分: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));
输出:
FIRST:true
GET STRING:' sdafsdaf'
我的版本中唯一的变化是变量 clean_string 。您能否确保 clean_string 的值有效(非空)。