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

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

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

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Java

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

Spring Boot

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

解決済

Spring BootでのMySQLへの接続につきまして

daidai1996
daidai1996

総合スコア0

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Java

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

Spring Boot

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

1回答

0評価

0クリップ

18閲覧

投稿2020/02/02 10:16

編集2022/01/12 10:58

Spring Bootについて学習をしています。
その中でMySQLに接続してJSON形式でデータを持ってきて表示させようとしました。
しかし、MySQLには接続できているようですが
データを表示させようとしたところ表示されません。

また、プログラム起動後にMySQLにログインして当該のテーブルにデータを
確認しましたところ中のテーブルデータが削除されていることを確認致しました。

また以下の参考サイトをベースとして書きました。
Java Spring Boot MySQLにJPAでselectするサンプル

どなたか助言お願い致します

java

Book.java package com.sample.ec; import javax.persistence.Entity; import javax.persistence.Id; import javax.persistence.Table; import javax.persistence.Column; @Entity @Table(name="book") public class Book { @Id @Column(name="id") private Integer id; @Column(name="name") private String name; @Column(name="price") private Integer price; public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public Integer getPrice() { return price; } public void setPrice(Integer price) { this.price = price; } }

java

BookRepository.java package com.sample.ec; import org.springframework.data.jpa.repository.JpaRepository; public interface BookRepository extends JpaRepository<Book, Integer> { }

java

DemoWebApplication.java package com.sample.ec; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class DemoWebApplication { public static void main(String[] args) { SpringApplication.run(DemoWebApplication.class, args); } }

java

MainController.java package com.sample.ec; import java.util.List; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @RestController public class MainController { @Autowired private BookRepository bookRepository; @RequestMapping(value = "/book") public List<Book> get(){ return bookRepository.findAll(); } }

java

application.properties spring.jpa.hibernate.ddl-auto=create spring.datasource.url=jdbc:mysql://localhost:3306/bookdb?serverTimezone=JST spring.datasource.username=******* spring.datasource.password=******* spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver spring.datasource.sql-script-encoding=utf-8 logging.level.org.springframework.web = trace

xml

pom.xml <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.2.2.RELEASE</version> <relativePath/> <!-- lookup parent from repository --> </parent> <groupId>com.EC</groupId> <artifactId>EC</artifactId> <version>0.0.1-SNAPSHOT</version> <name>DemoWeb</name> <description>EC project for Spring Boot</description> <properties> <java.version>1.8</java.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> <exclusions> <exclusion> <groupId>org.junit.vintage</groupId> <artifactId>junit-vintage-engine</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <scope>runtime</scope> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> </project>

MySQLのテーブル
データベース名:boodb
テーブル名:book
CREATE TABLE:
mysql> show create table book;
+-------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table | Create Table |
+-------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| book | CREATE TABLE book (
id int(11) NOT NULL,
name varchar(255) DEFAULT NULL,
price int(11) DEFAULT NULL,
PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 |
+-------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)

INSER文:
INSERT INTO bookdb.book (id, name, price) VALUES ('1', '漫画', '400');
INSERT INTO bookdb.book (id, name, price) VALUES ('2', '週刊誌', '500');
INSERT INTO bookdb.book (id, name, price) VALUES ('3', '辞典', '1000');

結果画面のスクショ
スクショ

※2/11 ログを取り直しました。
申し訳ございません。
見ずらいとは思うんですけどログのスクショをとってきました。
ログをとるにあたって以下をapplication.propertiesに
以下を追加しました。

logging.level.root=WARN
logging.level.org.hibernate=ERROR
logging.file=
logging.path=C:/sts/logs

spring.jpa.show-sql = true
spring.jpa.properties.hibernate.format_sql = true
logging.level.org.hibernate.SQL = debug
logging.level.org.hibernate.type.descriptor.sql.BasicBinder = trace

ログ1c17c4b504d88f6495fb5778696.png)
ログ2

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

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

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

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

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

m.ts10806
m.ts10806

2020/02/02 10:27

JOSON → JSON では。
daidai1996
daidai1996

2020/02/02 10:29

ありがとうございます。 修正いたします。
Orlofsky
Orlofsky

2020/02/02 12:21

テーブル定義はキャプチャではなく、CREATE TABLEに、テーブル中のデータはINSERTに変更してください。
daidai1996
daidai1996

2020/02/02 12:39

ありがとうございます。 もしよりしければテーブル定義の変更の仕方を教えていただけますでしょうか。
Orlofsky
Orlofsky

2020/02/02 12:49

何でも質問するのでは身に付きませんから、 >MySQL CREATE TABLE 取得方法 でググってください。
asahina1979
asahina1979

2020/02/02 13:31

そもそも画像が無駄に余白あるのを見ずらいとおもって余白を減らすのをしないのもいただけないよな。 まあおそらく、組み込みTOMCATが起動してないからサーバーにアクセスできてません。 理由は同じ手の質問で回答してるので割愛
daidai1996
daidai1996

2020/02/02 13:32

すいません。調べてみてはみたんですか 中身のデータをINSERTに変更というがわかりません。 データをINSERT文で入れなおすということですか?
daidai1996
daidai1996

2020/02/02 13:34

ありがとうございます。 TOMCATが起動してない件ついて改めて調べてみます
m.ts10806
m.ts10806

2020/02/02 21:07

>中身のデータをINSERTに変更 selectの結果を載せられてもこちらの手元にデータを入れられるわけではないので、CREATE TABLEを提示したように、データはINSERT文で提示してください、という意味かと思います。 ただ、いずれもマークダウン利用してご提示ください。``はマークダウンの機能でもあるため、御覧のようにそのまま表示になってません。
rubytomato
rubytomato

2020/02/03 03:43

> 追記 > コンソールに以下のエラーがあることを確認致しました。 > { /error}: error(HttpServletRequest) > { /error, produces [text/html]}: errorHtml(HttpServletRequest,HttpServletResponse) 追記されたエラーメッセージですが、これ以外にエラーメッセージがあるように思いますので ご確認のうえ、なるべく全文を質問内容に記載ください。 字数制限で無理な場合はスクリーンショットでもかまいません。
daidai1996
daidai1996

2020/02/08 15:09

質問更新しました。 遅れて申し訳ありません。
rubytomato
rubytomato

2020/02/11 11:59

> 追記 > コンソールに以下のエラーがあることを確認致しました。 > { /error}: error(HttpServletRequest) > { /error, produces [text/html]}: errorHtml(HttpServletRequest,HttpServletResponse) こちらの件ですが、貼って頂いたスクリーンショットを見ると、これはエラーではなくTRACEレベルのメッセージでした。 ほかにエラーらしいメッセージは出力されていないので、エラーは起きていないのではないでしょうか? 追加で3点ご確認ください。 1) スクリーンショットを撮った時点のMainControllerのソースコードは、質問文に記載のコードと同一でしょうか?  と言うのも、ログでは '/' に対してMainController#getがマッピングされているように見えるからです。 2) アプリケーション起動後、MainController#getのURLにアクセスしデータが返ってこなかった場合、別途SQLクライアントでMySQLにログインして当該のテーブルにデータが登録されているか確認してください。 3) application.propertiesに下記の行を追加してもう一度ログのスクリーンショットを貼りなおしてください。 spring.jpa.show-sql = true spring.jpa.properties.hibernate.format_sql = true logging.level.org.hibernate.SQL = debug logging.level.org.hibernate.type.descriptor.sql.BasicBinder = trace
daidai1996
daidai1996

2020/02/11 14:53

ありがとうございます。 >(1) MainControllerの@RequestMappingの値を "/"に変更しているときのログをとってました。 申し訳ありません。改めて正しいログを取り直しました。 >(2) アプリケーション起動後にySQLにログインして当該のテーブルにデータ を確認しましたところテーブルの中のデータが削除されていました。 データを入れなおして複数回繰り返しても同じ現象を確認致しました。 >(3) 教えて頂いたコードを追加して改めてログを取り直しました。 今の画像は改めて取り直したログとなっております。
rubytomato
rubytomato

2020/02/11 16:20

> 申し訳ありません。改めて正しいログを取り直しました。 > 今の画像は改めて取り直したログとなっております。 スクリーンショット、以前と変わっていないように思います。(ログの日付が2月8日です。) > アプリケーション起動後にySQLにログインして当該のテーブルにデータ > を確認しましたところテーブルの中のデータが削除されていました。 > データを入れなおして複数回繰り返しても同じ現象を確認致しました。 データを登録していてもアプリケーションを起動するとデータが消えるということでしょうか? そういうことであれば、アプリケーション起動後にデータを登録して`/book`にアクセスして、その結果をお知らせください。

まだ回答がついていません

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

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

ただいまの回答率
87.20%

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

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

質問する

関連した質問

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

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Java

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

Spring Boot

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