为什么我们将setInt与select查询一起使用,而不是在数据库中已存在值时使用getInt

时间:2016-01-04 12:54:56

标签: java jdbc

为什么我们将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"));

        }

1 个答案:

答案 0 :(得分:7)

您正在设置要在查询中使用的参数的值。 SQL中的?代表参数,在这里你给它一个值。

当您稍后致电getString()时,会从查询的结果中获取值,这与作为查询的一部分发送的参数非常不同。< / p>

参数化SQL允许将值安全地包含在查询中,而无需转义它们以防止SQL injection attacks或担心数据类型转换。您应该阅读JDBC PreparedStatement tutorial了解更多详情。