首页 > Java > 正文

需要@Bind吗?

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

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的。

另请查看参考文档的相应部分:https://www.php.cn/link/8012c0dd4aa84ef92dfa2de0c7163b5a

以上就是需要@Bind吗?的详细内容,更多请关注php中文网其它相关文章!

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
相关标签:
来源:stackoverflow网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号