【发布时间】:2012-07-23 13:23:44
【问题描述】:
我有这段代码,带有一个准备好的语句。我知道查询是多余的。参数id 是一个字符串<space>413530(“413530”)。请注意前面的空格字符。
String query = "SELECT RSCode as id FROM Customer WHERE RSCode=?";
PreparedStatement newPrepStatement = connection
.prepareStatement(query);
newPrepStatement.setString(1, id);
resultSet1 = newPrepStatement.executeQuery();
while (resultSet1.next()) {
System.out.println("Got a result set.");
logindata.add(resultSet1.getString("id"));
}
执行此查询后我没有得到任何结果。
现在,如果我使用相同的语句并将参数作为字符串的一部分附加如下:
String query = "SELECT RSCode as id FROM Customer WHERE RSCode=" + id;
PreparedStatement newPrepStatement = connection
.prepareStatement(query);
resultSet1 = newPrepStatement.executeQuery();
while (resultSet1.next()) {
System.out.println("Got a result set.");
logindata.add(resultSet1.getString("id"));
}
在执行这个准备好的语句后,我得到了一个结果。同样也适用于java.sql.statement
我想知道为什么驱动程序忽略了第二段代码中的空白,但在第一部分有问题。
【问题讨论】:
标签: java sql-server jdbc jtds