Rumah > Java > Perlukan @Bind?

Perlukan @Bind?

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Lepaskan: 2024-02-11 13:57:08
ke hadapan
679 orang telah melayarinya

Editor PHP Baicao hadir untuk menjawab soalan biasa: "Adakah saya memerlukan @Bind?" Untuk pemula, @Bind ialah anotasi biasa, digunakan dalam beberapa rangka kerja dan perpustakaan. Walau bagaimanapun, dalam PHP, tidak perlu menggunakan anotasi @Bind. PHP ialah bahasa dinamik dan tidak memerlukan pengikatan eksplisit fungsi atau parameter kaedah. Parameter fungsi dan kaedah terikat mengikut parameter sebenar yang diluluskan apabila dipanggil. Oleh itu, dalam PHP, tidak perlu menggunakan anotasi @Bind untuk pengikatan parameter. Semoga ia membantu semua orang!

Kandungan soalan

Saya secara tidak sengaja mendapati bahawa dalam projek but spring saya tidak perlu mengikat parameter dalam pertanyaan seperti di bawah.

@sqlquery("""
        select id, name
        from organisations
        where id = :id
          """)
@registerrowmapper(organisationmapper.class)
organisation getorgansation(@bind("id") string id);
Salin selepas log masuk

Ini berfungsi:

@SqlQuery("""
        select id, name
        from organisations
        where id = :id
          """)
@RegisterRowMapper(OrganisationMapper.class)
Organisation getOrgansation(String id);
Salin selepas log masuk

Namun, apabila saya menaik taraf projek lain (bukan projek but spring) untuk menggunakan 3.43.0, saya tidak dapat mengalih keluar pengikatan.

Adakah sesiapa mempunyai penjelasan yang baik mengapa saya boleh mendapatkan pertanyaan untuk berfungsi tanpa pengikatan dalam projek but spring, tetapi tidak dalam projek java biasa? (Selain penjelasan yang jelas, sihir). Adakah terdapat sebarang helah yang boleh saya gunakan untuk melangkau pengikatan?

Penyelesaian

Komen ini hanya boleh ditinggalkan apabila menyusun kod dengan bendera javac -parameters. Ada kemungkinan bahawa projek pertama sedang menyusun dengan bendera itu dan yang satu lagi tidak.

Bendera -parameters 标志。如果使用该标志,则方法的变量名称将在运行时可用于反射。当JDBI可以通过反射推断变量名为id时,不需要@Bind注解来明确它是针对查询参数id diperkenalkan di Java 8. Jika bendera ini digunakan, nama pembolehubah kaedah akan tersedia untuk dicerminkan semasa masa jalan. Apabila JDBI boleh membuat kesimpulan nama pembolehubah id melalui refleksi, anotasi @Bind tidak diperlukan untuk menjelaskan bahawa ia adalah untuk parameter pertanyaan id.

Sila semak juga bahagian dokumen rujukan yang sepadan: https://www.php.cn/link/8012c0dd4aa84ef92dfa2de0c7163b5a

Atas ialah kandungan terperinci Perlukan @Bind?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:stackoverflow.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan