我对SQL很新,我正在重新编写另一个java程序 程序员已经开发出来。当我打印他的一个查询select语句时,脚本包含sql语法:
SELECT * from database WHERE id = ?
我只想知道=?
应该做什么?我一直在谷歌搜索,我找不到任何相关的答案。
答案 0 :(得分:5)
它不是SQL表示法,而是JDBC (Java Database Connectivity)表示法。 ?
将替换为单独指定的参数。使用此方法,而不是尝试将参数替换为字符串,有助于防止SQL injection的风险。
答案 1 :(得分:1)
?
是一个占位符,一个参数,因此您可以动态传递它并为不同的参数返回不同的结果。
在代码中的某处,您应该看到他将参数添加到Statement对象并执行它。
答案 2 :(得分:1)
您很可能使用的工具将取代“?”具有实际价值。我之前在其他工具中看到过这种情况,例如SQL DTS(数据转换服务)......但是这显示了我的年龄:)
?
不是SQL语言的一部分。
答案 3 :(得分:1)
与JDBC Prepared statement 一起使用时,?
是SQL查询中使用的占位符。使用准备好的语句时会特别重复使用advantages over the normal statement(比如在循环中)。
答案 4 :(得分:0)
以下是一个例子:
PreparedStatement ps =
connection.prepareStatement("select name from users where user_name = ?");
ps.setString(1, "user1");
“?”运行查询时将替换为“user1”,并返回用户名为“user1”的用户的名字。