php小编百草在这里为大家解答一个常见的问题:“需要@Bind吗?”对于初学者来说,@Bind是一个常见的注解,在某些框架和库中使用。但是,在PHP中,并不需要使用@Bind注解。PHP是一种动态语言,不需要显式地绑定函数或方法的参数。函数和方法的参数会根据调用时传入的实际参数进行绑定。因此,在PHP中,不需要使用@Bind注解来进行参数绑定。希望对大家有所帮助!
我偶然发现,在 spring boot 项目中,我不必在像下面这样的查询中绑定参数。
@sqlquery(""" select id, name from organisations where id = :id """) @registerrowmapper(organisationmapper.class) organisation getorgansation(@bind("id") string id);
这有效:
@SqlQuery(""" select id, name from organisations where id = :id """) @RegisterRowMapper(OrganisationMapper.class) Organisation getOrgansation(String id);
但是,当我升级另一个项目(而不是 spring boot 项目)以使用 3.43.0 时,我无法删除绑定。
有没有人有一个很好的解释,为什么我可以在没有 spring boot 项目中的绑定的情况下让查询工作,但在普通的 java 项目中却不能? (除了明显的解释,魔术)。有什么技巧可以用来跳过绑定吗?
只有在使用 javac 标志 -parameters
编译代码时才能省略该注释。很可能第一个项目正在使用该标志进行编译,而另一个项目则没有。
Java 8 中引入了 -parameters
标志。如果使用该标志,则方法的变量名称将在运行时可用于反射。当JDBI可以通过反射推断变量名为id
时,不需要@Bind
注解来明确它是针对查询参数id
标志。如果使用该标志,则方法的变量名称将在运行时可用于反射。当JDBI可以通过反射推断变量名为id
时,不需要@Bind
注解来明确它是针对查询参数id
的。
另请查看参考文档的相应部分:https://www.php.cn/link/8012c0dd4aa84ef92dfa2de0c7163b5a
以上是需要@Bind吗?的详细内容。更多信息请关注PHP中文网其他相关文章!