前提・実現したいこと
queryForObjectの第二引数のRowMapper<T>の指定方法がわからない。
Spring BootでログインのDBのデータの件数を取得する処理でエラーが発生。
実現したいことは、現在出ているエラーを解消することです。
いろいろなサイトを参考に作成しているが、今まで携ってきた案件が下記のようなソースコードだったためうろ覚え状態でコーディングしています。
qurtyForObjectの引数が3つあった気がしますが、よくわかっていません、、、
発生している問題・エラーメッセージ
The method queryForObject(String, RowMapper<T>) in the type JdbcTemplate is not applicable for the arguments (String, MapSqlParameterSource)Java(67108979)
該当のソースコード
Java
1@Repository 2public class SampleRepositoryImpl implements SampleRepository { 3 4 @Autowired 5 JdbcTemplate db; 6 7 @Override 8 public Integer login(String userName) { 9 StringBuilder sb = new StringBuilder(); 10 MapSqlParameterSource param = new MapSqlParameterSource(); 11 sb.append(" SELECT "); 12 sb.append(" user_name "); 13 sb.append(" FROM "); 14 sb.append(" users "); 15 sb.append(" WHERE "); 16 sb.append(" user_name = :userName "); 17 param.addValue("userName", userName); 18 return db.queryForObject(sb.toString(), param); 19 } 20}
試したこと
1.return db.queryForObject(sb.toString(), param);
2.return db.queryForObject(sb.toString(), param, Integer.class);
3.return db.queryForObject(sb.toString(), Integer.class);
3の場合のエラー
Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is org.springframework.jdbc.BadSqlGrammarException: StatementCallback; bad SQL grammar [ SELECT user_name FROM users WHERE user_name = :userName ]; nested exception is org.postgresql.util.PSQLException: ERROR: ":"またはその近辺で構文エラー org.postgresql.util.PSQLException: ERROR: ":"またはその近辺で構文エラー
補足情報(FW/ツールのバージョンなど)
JAVA 8
Spring Boot 2.3.3
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/09/05 12:00
2020/09/06 04:15