🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Java

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

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

Spring

Spring Framework は、Javaプラットフォーム向けのオープンソースアプリケーションフレームワークです。 Java Platform上に、 Web ベースのアプリケーションを設計するための拡張機能が数多く用意されています。

Eclipse

Eclipseは、IBM社で開発された統合開発環境のひとつです。2001年11月にオープンソース化されました。 たくさんのプラグインがあり自由に機能を追加をすることができるため、開発ツールにおける共通プラットフォームとして位置づけられています。 Eclipse自体は、Javaで実装されています。

Q&A

解決済

2回答

1018閲覧

htmlでデータベースから所得したデータを表示したい

dododo_pg

総合スコア21

Java

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

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

Spring

Spring Framework は、Javaプラットフォーム向けのオープンソースアプリケーションフレームワークです。 Java Platform上に、 Web ベースのアプリケーションを設計するための拡張機能が数多く用意されています。

Eclipse

Eclipseは、IBM社で開発された統合開発環境のひとつです。2001年11月にオープンソース化されました。 たくさんのプラグインがあり自由に機能を追加をすることができるため、開発ツールにおける共通プラットフォームとして位置づけられています。 Eclipse自体は、Javaで実装されています。

0グッド

0クリップ

投稿2021/03/02 08:56

SpringBootを学習しています。
以下のhtmlを表示したいですが、試しでやった**<table border="1">**より上のデータベースからデータを持ってくるところが表示できません
データベース、テーブルにデータが入ってないためだと思います。
以下のSQL及びプロパティから自動的(?)に作ったデータベースので中身を確認する方法が知りたいです。
また、どこか間違っている箇所があったら教えてほしいです。

html

1<!DOCTYPE html> 2<html xmlns:th="http://www.thymeleaf.org"> 3<head> 4 <meta charset="UTF-8"> 5 <title>顧客一覧</title> 6</head> 7<table> 8 <tr th:each="customer : ${customers}"> 9 <td th:text="${customer.id}">100</td> 10 <td th:text="${customer.lastName}">山田</td> 11 <td th:text="${customer.firstName}">太郎</td> 12 <td> 13 <form th:action="@{/customers/edit}" method="get"> 14 <input type="submit" name="form" value="編集"/> 15 <input type="hidden" name="id" th:value="${customer.id}"/> 16 </form> 17 </td> 18 <td> 19 <form th:action="@{/customers/delete}" method="post"> 20 <input type="submit" value="削除"/> 21 <input type="hidden" name="id" th:value="${customer.id}"/> 22 </form> 23 </td> 24 </tr> 25</table> 26<table border="1"> 27 <tr> 28 <th>名前</th> 29 <th>年齢</th> 30 </tr> 31 <tr> 32 <td>田中</td> 33 <td>27</td> 34 </tr> 35 <tr> 36 <td>佐藤</td> 37 <td>42</td> 38 </tr> 39 </table> 40</body> 41</html>

sql

1INSERT INTO customers(first_name, last_name) VALUES('Hanako', 'Yamada'); 2INSERT INTO customers(first_name, last_name) VALUES('Yoshio', 'Satou');

sql

1CREATE TABLE IF NOT EXISTS customers (id INT PRIMARY KEY AUTO_INCREMENT, first_name VARCHAR(30), last_name VARCHAR(30))

propaty

1spring.datasource.driver-class-name=org.h2.Driver 2spring.datasource.url=jdbc:h2:mem:testdb 3spring.datasource.username=sa 4spring.datasource.password= 5spring.h2.console.enabled=true

java

1package com.example.web; 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.GetMapping; 9import org.springframework.web.bind.annotation.RequestMapping; 10 11import com.example.domain.Customer; 12import com.example.service.CustomerService; 13 14@Controller 15@RequestMapping("customers") 16public class CustomerController { 17 @Autowired 18 CustomerService customerService; 19 20 @GetMapping 21 String list(Model model) { 22 List<Customer> customers = customerService.findAll(); 23 model.addAttribute("customers", customers); 24 return "customers/list"; 25 } 26} 27

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

K_3578

2021/03/02 09:05

普通にデータベースの中身全部SELECTしたらいいのでは?
dododo_pg

2021/03/03 03:41

ありがとうございます。 やってみましたができてない気がします
K_3578

2021/03/03 07:00

customersテーブルのテーブル定義を追記して頂きたいです。
dododo_pg

2021/03/03 07:07

すみません。「テーブル定義」とは、SQLファイルの CREATE TABLE IF NOT EXISTS customers (id INT PRIMARY KEY AUTO_INCREMENT, first_name VARCHAR(30), last_name VARCHAR(30)) 部分のことでしょうか?
K_3578

2021/03/03 07:10

あぁ、自分が見落としてました。失礼しました。
dododo_pg

2021/03/03 07:49

「テーブル定義」は問題ない気がしますがいかがでしょうか?
K_3578

2021/03/03 08:03

ちょっと気になるところがあって聞いただけなので問題ないと思います。
guest

回答2

0

自己解決

先ほど、コントローラーがfindAll()を呼び出したもとのクラスを見たところ、以下のようになっていました。

java

1package com.example.repository; 2 3import java.util.List; 4 5import org.springframework.data.jpa.repository.JpaRepository; 6import org.springframework.data.jpa.repository.Query; 7 8import com.example.domain.Customer; 9 10public interface CustomerRepository extends JpaRepository<Customer, Integer> { 11 @Query("SELECT x FROM Customer x ORDER BY x.firstName, x.lastName") 12 List<Customer> findAllOrderByName(); 13} 14

「FROM Customer」となっていたので、ここがまちがいかと思いました。
「FROM customers」とした後、アプリケーションを実行したところ、以下のようなエラーが出ました。
Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled.
SQLに問題があるでしょうか?

投稿2021/03/03 08:33

dododo_pg

総合スコア21

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

javahack

2021/03/03 08:48

ここは回答欄です。 新たな情報は質問を編集して追記してください。
guest

0

以下に、プログラム実行時のコンソールの動きを記します。

2021-03-03 12:27:45.963 INFO 14040 --- [ main] c.example.HajibootThymeleafApplication : Starting HajibootThymeleafApplication using Java 11.0.9 on DESKTOP-R8CV6IQ with PID 14040 (C:\Users\misok\Desktop\spring\hajiboot-thymeleaf\target\classes started by misok in C:\Users\misok\Desktop\spring\hajiboot-thymeleaf) 2021-03-03 12:27:45.967 INFO 14040 --- [ main] c.example.HajibootThymeleafApplication : No active profile set, falling back to default profiles: default 2021-03-03 12:27:46.567 INFO 14040 --- [ main] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data JPA repositories in DEFAULT mode. 2021-03-03 12:27:46.634 INFO 14040 --- [ main] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 58 ms. Found 1 JPA repository interfaces. 2021-03-03 12:27:47.062 INFO 14040 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port(s): 8080 (http) 2021-03-03 12:27:47.072 INFO 14040 --- [ main] o.apache.catalina.core.StandardService : Starting service [Tomcat] 2021-03-03 12:27:47.072 INFO 14040 --- [ main] org.apache.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/9.0.43] 2021-03-03 12:27:47.162 INFO 14040 --- [ main] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext 2021-03-03 12:27:47.162 INFO 14040 --- [ main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 1149 ms 2021-03-03 12:27:47.243 INFO 14040 --- [ main] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Starting... 2021-03-03 12:27:47.391 INFO 14040 --- [ main] com.zaxxer.hikari.pool.PoolBase : HikariPool-1 - Driver does not support get/set network timeout for connections. (Receiver class net.sf.log4jdbc.ConnectionSpy does not define or inherit an implementation of the resolved method 'abstract int getNetworkTimeout()' of interface java.sql.Connection.) 2021-03-03 12:27:47.399 INFO 14040 --- [ main] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Start completed. 2021-03-03 12:27:47.426 DEBUG 14040 --- [ main] jdbc.sqltiming : com.zaxxer.hikari.pool.ProxyStatement.execute(ProxyStatement.java:95) 1. CREATE TABLE IF NOT EXISTS customers (id INT PRIMARY KEY AUTO_INCREMENT, first_name VARCHAR(30), last_name VARCHAR(30)) {executed in 8 msec} 2021-03-03 12:27:47.445 DEBUG 14040 --- [ main] jdbc.sqltiming : com.zaxxer.hikari.pool.ProxyStatement.execute(ProxyStatement.java:95) 1. INSERT INTO customers(first_name, last_name) VALUES('Miki', 'SQL') {executed in 1 msec} 2021-03-03 12:27:47.446 DEBUG 14040 --- [ main] jdbc.sqltiming : com.zaxxer.hikari.pool.ProxyStatement.execute(ProxyStatement.java:95) 1. INSERT INTO customers(first_name, last_name) VALUES('Tarou', 'Tanaka') {executed in 1 msec} 2021-03-03 12:27:47.446 DEBUG 14040 --- [ main] jdbc.sqltiming : com.zaxxer.hikari.pool.ProxyStatement.execute(ProxyStatement.java:95) 1. INSERT INTO customers(first_name, last_name) VALUES('Hanako', 'Yamada') {executed in 0 msec} 2021-03-03 12:27:47.446 DEBUG 14040 --- [ main] jdbc.sqltiming : com.zaxxer.hikari.pool.ProxyStatement.execute(ProxyStatement.java:95) 1. INSERT INTO customers(first_name, last_name) VALUES('Yoshio', 'Satou') {executed in 0 msec} 2021-03-03 12:27:47.457 DEBUG 14040 --- [ main] jdbc.sqltiming : com.zaxxer.hikari.pool.ProxyStatement.execute(ProxyStatement.java:95) コンソールからデータを取得 1. SELECT * from customers {executed in 11 msec} 2021-03-03 12:27:47.554 INFO 14040 --- [ main] o.hibernate.jpa.internal.util.LogHelper : HHH000204: Processing PersistenceUnitInfo [name: default] 2021-03-03 12:27:47.600 INFO 14040 --- [ main] org.hibernate.Version : HHH000412: Hibernate ORM core version 5.4.28.Final 2021-03-03 12:27:47.732 INFO 14040 --- [ main] o.hibernate.annotations.common.Version : HCANN000001: Hibernate Commons Annotations {5.1.2.Final} 2021-03-03 12:27:47.860 INFO 14040 --- [ main] org.hibernate.dialect.Dialect : HHH000400: Using dialect: org.hibernate.dialect.H2Dialect 2021-03-03 12:27:47.908 DEBUG 14040 --- [ main] jdbc.sqltiming : com.zaxxer.hikari.pool.ProxyStatement.executeQuery(ProxyStatement.java:111) 1. select * from INFORMATION_SCHEMA.SEQUENCES {executed in 0 msec} 2021-03-03 12:27:48.440 DEBUG 14040 --- [ main] jdbc.sqltiming : com.zaxxer.hikari.pool.ProxyStatement.execute(ProxyStatement.java:95) 1. drop table if exists customers CASCADE {executed in 3 msec} 2021-03-03 12:27:48.440 DEBUG 14040 --- [ main] jdbc.sqltiming : com.zaxxer.hikari.pool.ProxyStatement.execute(ProxyStatement.java:95) 1. drop sequence if exists hibernate_sequence {executed in 0 msec} 2021-03-03 12:27:48.442 DEBUG 14040 --- [ main] jdbc.sqltiming : com.zaxxer.hikari.pool.ProxyStatement.execute(ProxyStatement.java:95) 1. create sequence hibernate_sequence start with 1 increment by 1 {executed in 0 msec} 2021-03-03 12:27:48.443 DEBUG 14040 --- [ main] jdbc.sqltiming : com.zaxxer.hikari.pool.ProxyStatement.execute(ProxyStatement.java:95) 1. create table customers (id integer not null, first_name varchar(255) not null, last_name varchar(255) not null, primary key (id)) {executed in 0 msec} 2021-03-03 12:27:48.445 INFO 14040 --- [ main] o.h.e.t.j.p.i.JtaPlatformInitiator : HHH000490: Using JtaPlatform implementation: [org.hibernate.engine.transaction.jta.platform.internal.NoJtaPlatform] 2021-03-03 12:27:48.452 INFO 14040 --- [ main] j.LocalContainerEntityManagerFactoryBean : Initialized JPA EntityManagerFactory for persistence unit 'default' 2021-03-03 12:27:48.848 WARN 14040 --- [ main] JpaBaseConfiguration$JpaWebConfiguration : spring.jpa.open-in-view is enabled by default. Therefore, database queries may be performed during view rendering. Explicitly configure spring.jpa.open-in-view to disable this warning 2021-03-03 12:27:48.941 INFO 14040 --- [ main] o.s.s.concurrent.ThreadPoolTaskExecutor : Initializing ExecutorService 'applicationTaskExecutor' 2021-03-03 12:27:49.172 INFO 14040 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 8080 (http) with context path '' 2021-03-03 12:27:49.182 INFO 14040 --- [ main] c.example.HajibootThymeleafApplication : Started HajibootThymeleafApplication in 3.605 seconds (JVM running for 4.381)

25行目くらいの

SQL

11. SELECT * from customers {executed in 11 msec}

の部分ですが、これはデータを所得で来てないということでしょうか?
できてないのであれば、原因がどこにあるか教えてほしいです。
よろしくお願いします。

投稿2021/03/03 03:38

dododo_pg

総合スコア21

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

K_3578

2021/03/03 03:47

>1. SELECT * from customers {executed in 11 msec} は、わかんなかったら翻訳掛けたら分かると思いますが、 「customersテーブルから全てSELECTするのに11msec(ミリ秒)掛かりましたっていう事です。
dododo_pg

2021/03/03 06:52

ありがとうございます。 SQLは問題ないのであれば、htmlファイル、コントローラーがおかしいということでしょうか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問