[英]What does “=?” represent when used in an SQL query
我是SQL的新手,我正在重新编写另一个程序员开发的java程序。 当我打印他的一个查询select语句时,脚本包含sql语法:
SELECT * from database WHERE id = ?
我只想知道什么=?
应该怎么做? 我一直在谷歌搜索,我找不到任何相关的答案。
它不是SQL表示法,而是JDBC(Java数据库连接)表示法。 的?
被替换为单独指定的参数。 使用此方法,而不是尝试将参数替换为字符串,有助于防止SQL注入的风险。
的?
是一个占位符,一个参数,以便您可以动态传递它并为不同的参数返回不同的结果。
在代码中的某处,您应该看到他将参数添加到Statement对象并执行它。
很可能你使用的工具将取代“?” 具有实际价值。 我之前在其他工具中看到过这种情况,例如SQL DTS(数据转换服务)......但是这显示我多大了:)
的?
不是SQL语言的一部分。
的?
是与JDBC Prepared语句一起使用时在SQL查询中使用的占位符。 使用预准备语句优于正常语句,特别是当您重复使用它时(例如在循环中)。
这是一个例子:
PreparedStatement ps =
connection.prepareStatement("select name from users where user_name = ?");
ps.setString(1, "user1");
“?” 运行查询时将替换为“user1”,并返回用户名为“user1”的用户的名字。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.