前提・実現したいこと
thymeleaf内にsqlの検索結果を表示させたいです。
そのために、mapperによる取得データの受け渡しを行おうとしたのですが、
どうもうまくいかないので、解決策などありましたら、どのようなことでもいいのでコメントお願いします。
発生している問題・エラーメッセージ
以下がエラーの内容になります。「could not be found」なので、mapperが見つからないのではないかと思いました。
Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled. 2018-07-19 11:02:16.985 ERROR 20264 --- [ main] o.s.b.d.LoggingFailureAnalysisReporter : *************************** APPLICATION FAILED TO START *************************** Description: Field stampMapper in com.example.demo.controller.IndexController required a bean of type 'com.example.demo.mapper.StampMapper' that could not be found. Action: Consider defining a bean of type 'com.example.demo.mapper.StampMapper' in your configuration.
該当のソースコード
以下がControllerクラスです。
java
1package com.example.demo.controller; 2 3import java.util.List; 4 5import org.springframework.beans.factory.annotation.Autowired; 6import org.springframework.stereotype.Controller; 7import org.springframework.ui.Model; 8import org.springframework.web.bind.annotation.RequestMapping; 9 10import com.example.demo.domain.Stamp; 11import com.example.demo.mapper.StampMapper; 12 13@Controller 14public class IndexController { 15 16 @Autowired 17 private StampMapper stampMapper ; 18 19 @RequestMapping 20 public String index(Model model) { 21 List<Stamp> list = stampMapper.selectAll(); 22 model.addAttribute("stamp", list); 23 return "index"; 24 } 25 26} 27
以下がdomainです。
java
1package com.example.demo.domain; 2 3public class Stamp { 4 5 String stamp_device_id; 6 7 public String getStamp_device_id() { 8 return stamp_device_id; 9 } 10 11 public void setStamp_device_id(String stamp_device_id) { 12 this.stamp_device_id = stamp_device_id; 13 } 14}
以下がMapperです。
java
1package com.example.demo.mapper; 2 3import java.util.List; 4 5import org.apache.ibatis.annotations.Mapper; 6 7import com.example.demo.domain.Stamp; 8 9@Mapper 10public interface StampMapper { 11 12 List<Stamp> selectAll(); 13} 14
xml
1<?xml version="1.0" encoding="UTF-8"?> 2<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> 3<mapper namespace="com.example.demo.mapper.StampMapper"> 4<!-- 打刻情報(未登録の打刻情報を問い合わせる) --> 5 <select id="selectAll" resultType="com.example.demo.domain.Stamp"> 6SELECT 7 stamp_device_id 8FROM 9 t_stamp_info 10 </select> 11</mapper> 12
以下が検索結果を表示するhtmlです。
html
1<!DOCTYPE html> 2<html xmlns:th="http://www.thymeleaf.org"> 3<head> 4 <meta charset="utf-8" /> 5 <title>demo</title> 6</head> 7<body> 8<p th:each="stamp : ${stamp}" th:text="${stamp.stamp_devie_id}" /> 9</body> 10</html>
試したこと
・Mapperのファイル構成変更
補足情報(FW/ツールのバージョンなど)
Spring Tool Suite
Version: 3.9.4.RELEASE
以下、ファイル構成