実現したいこと
JdbcTemplateのqueryForMap()メソッドについて疑問があります。queryForMap(query,id)についてですが、検索したいレコードのidさえわかればデータベースから検索できるのになぜqueryという引数が必要なのでしょうか?
また、queryが分かればidの引数など不要に思います。なぜ二つの引数があるのか調べたところ、idにはバインド変数が入るとありましたが、下記のコードの場合、findByIdという関数の引数のidが代入されているので、queryにselect文は要るのでしょうか?select文が必要だとしてもなぜidが必要なのでしょうか?
初心者故稚拙な質問だと思いますがどなたかご教示ください。
参考サイト:https://keishiprogramming.hatenablog.com/entry/2021/10/04/091120
該当のソースコード
package com.example.hello; import java.util.Map; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.stereotype.Repository; @Repository public class HelloRepository { @Autowired private JdbcTemplate jdcbTemplate; public Map<String,Object> findById(String id){ // select文 String query="select" +"from employee" +"where id=?"; // 検索実行 // queryForMap()メソッドそのものは、Spring FrameworkのJdbcTemplateクラスに固有のものです。 // そのため、Spring FrameworkやSpring Bootの一部で提供される機能です。 // 他のフレームワークやライブラリでは、直接このメソッドを使用することはできません。 Map<String, Object> employee=jdcbTemplate.queryForMap(query,id); return employee; } }
試したこと
chatGPTに聞いたら、queryは不要という回答でしたが、納得できていません。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2024/05/06 00:31