今回の記事はJavaのフレームワークSpring Bootで、MySQLに接続してデータベースのデータ取得と画面への表示手順をご紹介する記事です。初心者用にサンプルアプリを作成して学べるようにしております。画像付きで分かりやすく解説していきますので、是非参考にしてみて下さい。
サンプルアプリ作成
- Spring BootプロジェクトでHello World
- Spring BootでMySQL接続とデータベースからデータを参照し画面表示←ここ
- Spring Bootで入力画面からMySQLにデータ登録
- Spring Bootで入力画面にバリデーションの設定
- Spring Bootでアプリケーションのテスト実施
- Spring Bootでアプリケーションのテスト自動化
Eclipseでプロジェクト作成
基本的にJava等の環境を構築する方法に関しては前回の記事を参考にしてみてください。
buildタイプはGradleに設定します。
次にプロジェクトに事前にインストールしておく、dependenciesにチェックをしておきます。
チェックをつけておくものは下記です。検索で見つかると思います。
- 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
アプリケーション起動
これで、問題なくbuildできた場合、ブラウザで下記を開きます。
http://localhost:8080/index
ページにIDとNameが表示されていればOKです。
では今回の記事は以上です。続きでは入力したデータのデータベース登録を行ったりしております。気になる方は是非見ていってください。
コメント