SQL查询参数化

时间:2012-07-06 10:19:40

标签: sql

有人可以给出以下答案吗?

Statement statement;

string sql;

sql = "SELECT gender FROM people WHERE gender = 'M' ";

results = statement.executeQuery(sql);

在字符串SQL查询中表示“M”时,我需要做什么格式化?

注意:性别为“M”或“F”,我想返回性别为“M”的所有行。

1 个答案:

答案 0 :(得分:1)

如果您手动编写查询,

'M'是指定VARCHAR列值的正确方法。

但更好的方法通常是使用准备好的声明:

stmt = connect.prepareStatement("SELECT gender FROM people WHERE gender = ?");
stmt.setString( 1, "M" );

这种方法的优点是JDBC会自动为您转换参数,正确转义它等等。

例如,在尝试将D'Angelo(常用意大利语名称)添加到数据库后,您的代码对于人名会变得更加复杂。