首页 > Java > 需要@Bind吗?

需要@Bind吗?

WBOY
发布: 2024-02-11 13:57:08
转载
673 人浏览过

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中文网其他相关文章!

来源:stackoverflow.com
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板