php エディター Baicao は、「@Bind は必要ですか?」というよくある質問に答えます。初心者向けに、@Bind は一部のフレームワークやライブラリで使用される一般的なアノテーションです。ただし、PHP では @Bind アノテーションを使用する必要はありません。 PHP は動的言語であり、関数やメソッドのパラメーターを明示的にバインドする必要はありません。関数とメソッドのパラメーターは、呼び出し時に渡される実際のパラメーターに従ってバインドされます。したがって、PHP では、パラメーターのバインドに @Bind アノテーションを使用する必要はありません。お役に立てれば幸いです!
Spring Boot プロジェクトでは、以下のようなクエリでパラメータをバインドする必要がないことを偶然発見しました。
リーリーこれは機能します:
リーリーただし、別のプロジェクト (Spring Boot プロジェクトではない) を 3.43.0 を使用するようにアップグレードすると、バインディングを削除できません。
スプリング ブート プロジェクトではバインディングなしでクエリが機能するのに、通常の Java プロジェクトでは機能しない理由について、適切な説明を持っている人はいますか? (明白な説明に加えて、魔法)。バインディングをスキップするために使用できるトリックはありますか?
このコメントは、javac フラグ -parameters
を使用してコードをコンパイルする場合にのみ省略できます。最初のプロジェクトはそのフラグを使用してコンパイルされているが、もう 1 つのプロジェクトはコンパイルされていない可能性があります。
-parameters
フラグは Java 8 で導入されました。このフラグを使用すると、メソッドの変数名を実行時に反映できるようになります。 JDBI がリフレクションを通じて変数名 id
を推論できる場合、クエリ パラメータ id
に対するものであることを明確にするために @Bind
アノテーションを使用する必要はありません。 。
参考ドキュメントの対応するセクションも確認してください: https://www.php.cn/link/8012c0dd4aa84ef92dfa2de0c7163b5a
以上が@Bind が必要ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。