为什么我们将setInt与select查询一起使用,而不是在数据库中已存在值时使用getInt?
try {
conn = getConnection();
ps = conn.prepareStatement("SELECT * FROM circle where id =?");
ps.setInt(1, circleId);
Circle circle = null;
rs = ps.executeQuery();
if (rs.next()) {
//String s = rs.getString(circleId);
circle = new Circle(circleId, rs.getString("name"));
}
答案 0 :(得分:7)
您正在设置要在查询中使用的参数的值。 SQL中的?
代表参数,在这里你给它一个值。
当您稍后致电getString()
时,会从查询的结果中获取值,这与作为查询的一部分发送的参数非常不同。< / p>
参数化SQL允许将值安全地包含在查询中,而无需转义它们以防止SQL injection attacks或担心数据类型转换。您应该阅读JDBC PreparedStatement
tutorial了解更多详情。