“=”是什么意思?在 SQL 查询中使用时表示

发布于 2025-01-02 14:47:34 字数 196 浏览 0 评论 0 原文

我对 SQL 相当陌生,目前正在重新编写另一个 java 程序 程序员发达了。当我打印他的查询选择语句之一时,脚本包含 sql 语法:

SELECT * from database WHERE id = ?

我只想知道 =? 应该做什么?我一直在谷歌上搜索,但找不到任何相关的答案。

I'm fairly new to SQL and I'm currently reworking a java program that another
programmer has developed. When I print one of his query select statements the script contains sql syntax:

SELECT * from database WHERE id = ?

I just want know what =? is supposed to do? I've been googling around and I can't find any relevant answer.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

生来就爱笑 2025-01-09 14:47:34

它不是 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.

静水深流 2025-01-09 14:47:34

? 是一个占位符,一个参数,这样就可以动态传入,不同的参数返回不同的结果。

在代码中的某个位置,您应该看到他将参数添加到 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.

笑忘罢 2025-01-09 14:47:34

您很可能正在使用一个工具来替换“?”具有实际值。我以前在其他工具中见过这种情况,例如 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.

何处潇湘 2025-01-09 14:47:34

? 是与 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).

天荒地未老 2025-01-09 14:47:34

这是一个例子:

PreparedStatement ps = 
    connection.prepareStatement("select name from users where user_name = ?");
ps.setString(1, "user1");

“?”当运行查询并返回用户名为“user1”的用户的名字时,将被“user1”替换。

Here is an example :

PreparedStatement ps = 
    connection.prepareStatement("select name from users where user_name = ?");
ps.setString(1, "user1");

the "?" gets replace by "user1" when the query is run and the first name of the user with user name "user1" is returned.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文