String q = "SELECT attr FROM students foo =? AND bar = ?";
PreparedStatement s= connection.prepareStatement(q);
s.setString(1,"a");
s.setString(2."b");
ResultSet rs = s.executeQuery();
if(rs.next())
{
System.out.println("aba");
}
else
{
System.out.println("zab");
}
我不完全确定,但我的解释是它执行查询以从“学生”中找到“attr”,其中foo是某种东西而bar是某种东西。如果查询成功结果,则打印出aba,否则将打印出zab。
如果我错了,请纠正我。是什么s.SsetStrings(1,“a”)是为了什么?究竟问号代表什么?
答案 0 :(得分:2)
你大多是对的。如果students
表格中有至少一个行,包含字段foo='a'
和bar='b'
,则会打印出aba
,如果没有这样的行存在,打印出zab
问号和0 .setString(1,"a")
陈述密切相关。 ?
表示查询的参数(占位符,如果更方便掌握),s.set<datatype>()
方法'填充'。第一个参数指定要填充的参数,第二个参数指定值。
答案 1 :(得分:1)
查询中的问号表示稍后要添加的值。他们充当占位符。
因此,您只需准备一次查询,然后使用例如
设置值s.setString(1,"a");
这会将第一个值(也就是第一个问号)设置为字符串值a
。其他类型有各自的功能,例如setInt()
或setLong()
。