Inhaltsverzeichnis
Frageninhalt
Workaround
Heim Java Benötigen Sie @Bind?

Benötigen Sie @Bind?

Feb 11, 2024 pm 01:57 PM

Der PHP-Editor Baicao ist hier, um eine häufig gestellte Frage zu beantworten: „Benötige ich @Bind?“ Für Anfänger ist @Bind eine gängige Annotation, die in einigen Frameworks und Bibliotheken verwendet wird. In PHP besteht jedoch keine Notwendigkeit, die Annotation @Bind zu verwenden. PHP ist eine dynamische Sprache und erfordert keine explizite Bindung von Funktions- oder Methodenparametern. Die Parameter von Funktionen und Methoden werden entsprechend den beim Aufruf übergebenen tatsächlichen Parametern gebunden. Daher besteht in PHP keine Notwendigkeit, die @Bind-Annotation für die Parameterbindung zu verwenden. Ich hoffe, hilfreich zu sein!

Frageninhalt

Ich habe zufällig entdeckt, dass ich in einem Spring-Boot-Projekt keine Parameter in einer Abfrage wie unten binden muss.

@sqlquery("""
        select id, name
        from organisations
        where id = :id
          """)
@registerrowmapper(organisationmapper.class)
organisation getorgansation(@bind("id") string id);
Nach dem Login kopieren

Das funktioniert:

@SqlQuery("""
        select id, name
        from organisations
        where id = :id
          """)
@RegisterRowMapper(OrganisationMapper.class)
Organisation getOrgansation(String id);
Nach dem Login kopieren

Als ich jedoch ein anderes Projekt (nicht das Spring Boot-Projekt) auf die Verwendung von 3.43.0 aktualisiert habe, konnte ich die Bindungen nicht entfernen.

Hat jemand eine gute Erklärung, warum ich die Abfrage in einem Spring-Boot-Projekt ohne Bindungen zum Laufen bringen kann, in einem normalen Java-Projekt jedoch nicht? (Abgesehen von der offensichtlichen Erklärung, Magie). Gibt es einen Trick, mit dem ich die Bindung überspringen kann?

Workaround

Dieser Kommentar kann nur weggelassen werden, wenn der Code mit dem Javac-Flag kompiliert wird -parameters. Es ist möglich, dass das erste Projekt mit dieser Flagge kompiliert wird und das andere nicht.

Die -parameters 标志。如果使用该标志,则方法的变量名称将在运行时可用于反射。当JDBI可以通过反射推断变量名为id时,不需要@Bind注解来明确它是针对查询参数id-Flagge wurde in Java 8 eingeführt. Wenn dieses Flag verwendet wird, stehen die Variablennamen der Methode zur Laufzeit für die Reflektion zur Verfügung. Wenn JDBI den Variablennamen id durch Reflektion ableiten kann, ist die Annotation @Bind nicht erforderlich, um deutlich zu machen, dass es sich um den Abfrageparameter id.

Bitte überprüfen Sie auch den entsprechenden Abschnitt des Referenzdokuments: https://www.php.cn/link/8012c0dd4aa84ef92dfa2de0c7163b5a

Das obige ist der detaillierte Inhalt vonBenötigen Sie @Bind?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)