占位符和参数的区别
Posted
技术标签:
【中文标题】占位符和参数的区别【英文标题】:Difference between Placeholder and parameter 【发布时间】:2020-06-09 20:04:20 【问题描述】:我正在观看有关 JDBC 的课程,当讲师在 Prepared Statement 中谈到 ?
(问号)时,他说:
在执行查询之前,我必须填写占位符或参数。
他在谈论这样一个查询:
SELECT * FROM Employee where salary > ?
现在,我的主要问题是:
占位符和参数有什么区别?
难道他错了吗? ?
可以是占位符还是参数?
编辑:
我也考虑这两个定义:
argument 是传入的值/变量/引用,parameter 是接收变量
【问题讨论】:
他说错了。他应该说的是“用实际参数填充占位符”。这样就很清楚了。 @user207421 我们不应该说“用参数填充占位符”吗?因为参数应该是接收参数,而参数应该是传入的值。 是否有某种考试题有所不同?我通常会认为 placeholder 和 parameter 是同义词,并且所说的短语只是解释您可能会看到的概念的不同名称。 @MehSar 在编译器构造中,您有形式参数和实际参数。同样在这里。形式参数或占位符是?
,实际参数是您设置的值。但你的导师可能对两者的意思是一样的。
@MarmiteBomber 是的,先生。非常感谢,
【参考方案1】:
没有区别,这只是用于相同事物的两个术语。这可能就是使用该短语的原因:介绍这两个术语并表明它们可以互换使用。甚至还有第三种变体,将两者组合在一个术语中:参数占位符。
在我看来,?
是一个值的占位符,但同时也是一个查询的参数。
【讨论】:
以上是关于占位符和参数的区别的主要内容,如果未能解决你的问题,请参考以下文章
PostgreSQL:在 PQexecPrepared() paramValues 参数中给出的类型与占位符和类型之间的关系
Spring实战bean装配的运行时值注入——属性占位符和SpEL