質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.60%
PostgreSQL

PostgreSQLはオープンソースのオブジェクトリレーショナルデータベース管理システムです。 Oracle Databaseで使われるPL/SQLを参考に実装されたビルトイン言語で、Windows、 Mac、Linux、UNIX、MSなどいくつものプラットフォームに対応しています。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

MyBatis

MyBatisはJavaや.NET Frameworkでなどで使用できる、SQL文や、ストアドプロシージャをオブジェクトと紐付けるO/Rマッピングフレームワークです。

Thymeleaf

Thymeleaf(タイムリーフ)とは、Java用のテンプレートエンジンで、特定のフレームワークに依存せず使用することが可能です。

Spring Boot

Spring Bootは、Javaのフレームワークの一つ。Springプロジェクトが提供する様々なフレームワークを統合した、アプリケーションを高速で開発するために設計されたフレームワークです。

Q&A

2回答

6902閲覧

SpringのMapperによるエラー

Sa10

総合スコア10

PostgreSQL

PostgreSQLはオープンソースのオブジェクトリレーショナルデータベース管理システムです。 Oracle Databaseで使われるPL/SQLを参考に実装されたビルトイン言語で、Windows、 Mac、Linux、UNIX、MSなどいくつものプラットフォームに対応しています。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

MyBatis

MyBatisはJavaや.NET Frameworkでなどで使用できる、SQL文や、ストアドプロシージャをオブジェクトと紐付けるO/Rマッピングフレームワークです。

Thymeleaf

Thymeleaf(タイムリーフ)とは、Java用のテンプレートエンジンで、特定のフレームワークに依存せず使用することが可能です。

Spring Boot

Spring Bootは、Javaのフレームワークの一つ。Springプロジェクトが提供する様々なフレームワークを統合した、アプリケーションを高速で開発するために設計されたフレームワークです。

0グッド

0クリップ

投稿2018/07/19 03:17

前提・実現したいこと

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
以下、ファイル構成

イメージ説明
以上、よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

下記のような質問は推奨されていません。

  • 質問になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

適切な質問に修正を依頼しましょう。

また依頼した内容が修正された場合は、修正依頼を取り消すようにしましょう。

TM3tmlab

2018/07/19 11:29

再現しませんでした。 pom.xml の内容を知りたいです。
退会済みユーザー

退会済みユーザー

2018/07/22 23:57

前スレと同じ質問ですね。不利な追記、修正の依頼があったから再質問ですか?
退会済みユーザー

退会済みユーザー

2018/07/22 23:58

TM3tmlab mybatis用のオートコンフィグは使いたくないし調べたくないようです。
guest

回答2

0

エラーの内容はbean登録ができていないため、Autowiredしてもインスタンスが見つからないだけです。
Springを走らせてるクラス(質問には記載がないです)に@MapperScanアノテーションをつけてあげて、Mapperクラスのパッケージを指定してあげれば、bean登録できるので動くようになると思います。

投稿2021/02/04 15:22

favoriteigo

総合スコア66

下記のような回答は推奨されていません。

  • 質問の回答になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

このような回答には修正を依頼しましょう。

また依頼した内容が修正された場合は、修正依頼を取り消すようにしましょう。

0

mybatis-spring
:Mapper の注入

@MapperScan を記述するか

ないしは、mybatis-spring-boot-autoconfigure を利用して、設定ファイル(application.propertiesないしなapplication.yml)に、mybatis > mapper-locations にて設定を記述するとできるでしょうか。

投稿2018/08/13 23:49

A-pZ

総合スコア12011

下記のような回答は推奨されていません。

  • 質問の回答になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

このような回答には修正を依頼しましょう。

また依頼した内容が修正された場合は、修正依頼を取り消すようにしましょう。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.60%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

同じタグがついた質問を見る

PostgreSQL

PostgreSQLはオープンソースのオブジェクトリレーショナルデータベース管理システムです。 Oracle Databaseで使われるPL/SQLを参考に実装されたビルトイン言語で、Windows、 Mac、Linux、UNIX、MSなどいくつものプラットフォームに対応しています。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

MyBatis

MyBatisはJavaや.NET Frameworkでなどで使用できる、SQL文や、ストアドプロシージャをオブジェクトと紐付けるO/Rマッピングフレームワークです。

Thymeleaf

Thymeleaf(タイムリーフ)とは、Java用のテンプレートエンジンで、特定のフレームワークに依存せず使用することが可能です。

Spring Boot

Spring Bootは、Javaのフレームワークの一つ。Springプロジェクトが提供する様々なフレームワークを統合した、アプリケーションを高速で開発するために設計されたフレームワークです。