スポンサーリンク

【Spring Boot】MySQLからデータ取得と画面への表示手順ご紹介。~ サンプルアプリ作成 ~

Java
スポンサーリンク

今回の記事はJavaのフレームワークSpring Bootで、MySQLに接続してデータベースのデータ取得と画面への表示手順をご紹介する記事です。初心者用にサンプルアプリを作成して学べるようにしております。画像付きで分かりやすく解説していきますので、是非参考にしてみて下さい。 

サンプルアプリ作成

  1. Spring BootプロジェクトでHello World
  2. Spring BootでMySQL接続とデータベースからデータを参照し画面表示←ここ
  3. Spring Bootで入力画面からMySQLにデータ登録
  4. Spring Bootで入力画面にバリデーションの設定
  5. Spring Bootでアプリケーションのテスト実施
  6. Spring Bootでアプリケーションのテスト自動化
スポンサーリンク

Eclipseでプロジェクト作成

基本的にJava等の環境を構築する方法に関しては前回の記事を参考にしてみてください。

https://qiita.com/t-yama-3/items/969825d5c1bc4a16866dを参照

buildタイプはGradleに設定します。

次にプロジェクトに事前にインストールしておく、dependenciesにチェックをしておきます。

https://qiita.com/t-yama-3/items/969825d5c1bc4a16866dを参照

チェックをつけておくものは下記です。検索で見つかると思います。

  • Spring Boot DevTools
  • JDBC API
  • MySQL Driver
  • Thymeleaf
  • Spring Web

これで、プロジェクトを作成すると下記のようになっています。

MySQLでデータベース作成

MySQLはインストールしましょう。こちらからインストール手順が公開されています。

データベースの作成とテーブルの作成、データのInsertを行うコマンドは下記です。

// ログイン
mysql -u root -p
// パスワードはRootユーザのMySQLを設定した際のものを使用
// ユーザに関しては別ユーザを作成してもOK

// データベース作成
create database javatest;

// データベース接続
connect javatest;

// テーブル作成
create table test_sample1 (id INT ,name VARCHAR(100));

// データ追加
insert into test_sample1 values(1,'test1');
insert into test_sample1 values(2,'test2');
insert into test_sample1 values(3,'test3');
insert into test_sample1 values(4,'test4');
insert into test_sample1 values(5,'test5');
insert into test_sample1 values(6,'test6');
insert into test_sample1 values(7,'test7');
insert into test_sample1 values(8,'test8');
insert into test_sample1 values(9,'test9');
insert into test_sample1 values(10,'test10');

出力結果は下記のようになっております。

+------+--------+
| id   | name   |
+------+--------+
|    1 | test1  |
|    2 | test2  |
|    3 | test3  |
|    4 | test4  |
|    5 | test5  |
|    6 | test6  |
|    7 | test7  |
|    8 | test8  |
|    9 | test9  |
|   10 | test10 |
+------+--------+

では、このデータを画面に表示させていきます。

Controller作成

package com.example.demo;

import java.util.List;
import java.util.Map;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
@RequestMapping()
public class TestController {

    @Autowired
    private JdbcTemplate jdbcTemplate;

    @GetMapping("/index")
    public String index(Model model) {
        String sql = "SELECT * FROM test_sample1";
        List<Map<String, Object>> list = jdbcTemplate.queryForList(sql);
        model.addAttribute("testList", list);
        return "index";
    }
}

SQLはすべての要素を取ってくるように設定します。

Html作成

modelでtestListを渡しており、IDとNameをリストで表示させています。

<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>Insert title here</title>
</head>
<body>
    <table>
        <tr>
            <th>id</th>
            <th>name</th>
            <th>old</th>
        </tr>
        <tr th:each="test : ${testList}">
            <td th:text="${test.id}"></td>
            <td th:text="${test.name}"></td>
        </tr>
    </table>
</body>
</html>

データ接続用参照設定

データベースを操作するモジュールで参照するページです。データソースの設定からユーザ、パスワードなどを設定します。

spring.datasource.url=jdbc:mysql://localhost:3306/javatest
spring.datasource.username=root
spring.datasource.password=[自身で設定したrootパスワード]
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.initialization-mode=always

アプリケーション起動

https://qiita.com/t-yama-3/items/969825d5c1bc4a16866dを参照

これで、問題なくbuildできた場合、ブラウザで下記を開きます。

http://localhost:8080/index

ページにIDとNameが表示されていればOKです。

では今回の記事は以上です。続きでは入力したデータのデータベース登録を行ったりしております。気になる方は是非見ていってください。

コメント

タイトルとURLをコピーしました