“=”是什么意思?在 SQL 查询中使用时表示
我对 SQL 相当陌生,目前正在重新编写另一个 java 程序 程序员发达了。当我打印他的查询选择语句之一时,脚本包含 sql 语法:
SELECT * from database WHERE id = ?
我只想知道 =?
应该做什么?我一直在谷歌上搜索,但找不到任何相关的答案。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
它不是 SQL 表示法,而是 JDBC(Java 数据库连接) 表示法。
?
被替换为单独指定的参数。使用这种方法,而不是尝试自己将参数替换为字符串,有助于防止SQL 注入的风险。It's not a SQL notation, but a JDBC (Java Database Connectivity) notation. The
?
gets replaced with a parameter that is specified separately. Using this approach, instead of trying to substitute the parameter yourself into the string, helps prevent the risk of SQL injection.?
是一个占位符,一个参数,这样就可以动态传入,不同的参数返回不同的结果。在代码中的某个位置,您应该看到他将参数添加到 Statement 对象并执行它。
The
?
is a place holder, a parameter, so that you can pass it in dynamically and return different results for different parameters.Somewhere in the code you should see that he adds the parameter to the Statement object and execute it.
您很可能正在使用一个工具来替换“?”具有实际值。我以前在其他工具中见过这种情况,例如 SQL DTS(数据转换服务)...但这显示了我的年龄:)
?
不是 SQL 语言的一部分。Most likely you are using a tool that will replace the "?" with an actual value. I've seen this in other tools before such as SQL DTS (Data Transformation Services)... but that's showing how old I am :)
The
?
is not part of the SQL language.?
是与 JDBC 一起使用时在 SQL 查询中使用的占位符准备好的声明。使用准备好的语句有 相对于普通语句的优点特别是当您重复使用它时(例如在循环中)。The
?
is a place holder used in SQL queries when used with JDBC Prepared statement. Using a prepared statement has advantages over the normal statement specially when you use it repeatedly (say in a loop).这是一个例子:
“?”当运行查询并返回用户名为“user1”的用户的名字时,将被“user1”替换。
Here is an example :
the "?" gets replace by "user1" when the query is run and the first name of the user with user name "user1" is returned.