この記事では、build.gradle に必要な依存関係を追加済みの状態で、Spring BootアプリケーションからMySQLデータベースに接続し、test_table テーブルのデータを取得するREST APIを構築する手順について解説します。
準備
1. テーブル作成
手順
1. TestTable エンティティの作成
まず、データベースの test_table テーブルに対応するJavaクラスを作成します。このクラスはJPAのエンティティとして設定され、Spring Data JPAがデータベースのテーブルとマッピングを行います。
エンティティクラスコード例
package com.example.demo.entity;
import jakarta.persistence.Entity;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;
import jakarta.persistence.Table;
@Entity
@Table(name = "test_table")
public class TestTable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String name;
private String createDatetime;
private String updateDatetime;
// GetterとSetter
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getCreateDatetime() {
return createDatetime;
}
public void setCreateDatetime(String createDatetime) {
this.createDatetime = createDatetime;
}
public String getUpdateDatetime() {
return updateDatetime;
}
public void setUpdateDatetime(String updateDatetime) {
this.updateDatetime = updateDatetime;
}
}
-
@Entityと@Table(name = "test_table")アノテーションにより、test_tableテーブルと対応するエンティティを定義。 -
@Idと@GeneratedValueは主キー(idフィールド)の自動生成戦略を指定します。
2. TestTableRepository インターフェースの作成
次に、Spring Data JPAが提供する JpaRepository を使ってリポジトリインターフェースを定義します。
リポジトリインターフェースコード例
package com.example.demo.repository;
import com.example.demo.entity.TestTable;
import org.springframework.data.jpa.repository.JpaRepository;
public interface TestTableRepository extends JpaRepository<TestTable, Long> {
}
-
JpaRepository<TestTable, Long>を継承することで、基本的なデータアクセスメソッド(CRUD操作)を自動的に利用できるようになります。 - SQLを記述せずに、データベースからデータを取得したり保存できるのがポイントです。
3. TestTableController の作成
次に、コントローラークラスを作成し、TestTableRepository を使ってデータを取得するエンドポイントを定義します。
コントローラーコード例
package com.example.demo.controller;
import com.example.demo.entity.TestTable;
import com.example.demo.repository.TestTableRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
@RestController
public class TestTableController {
@Autowired
private TestTableRepository testTableRepository;
@GetMapping("/test-table")
public List<TestTable> getAllTestTableData() {
return testTableRepository.findAll();
}
}
-
@RestControllerアノテーションでコントローラーを定義し、SpringがHTTPリクエストを処理するクラスであることを示します。 -
@GetMapping("/test-table")アノテーションで、GETメソッドのエンドポイント/test-tableを指定。エンドポイントにアクセスすると、test_tableのデータがJSON形式で返されます。
4. アプリケーションを起動して確認
Spring Boot アプリケーションを起動し、ブラウザまたはツールを使って、以下のURLにアクセスしてデータを確認します。
http://localhost:8080/test-table
5. 結果の確認
ブラウザやPostmanなどのツールでエンドポイントにアクセスすると、test_table に格納されているデータがJSON形式で表示されます。以下のようなJSONデータが返されることが期待されます。
[
{
"id": 1,
"name": "tanaka",
"createDatetime": null,
"updateDatetime": null
},
{
"id": 2,
"name": "suzuki",
"createDatetime": null,
"updateDatetime": null
},
{
"id": 3,
"name": "sato",
"createDatetime": null,
"updateDatetime": null
}
]
以上で、Spring BootアプリケーションとMySQLデータベースが連携し、test_table のデータを取得できるREST APIが構築されました。SQL文を直接記述することなく、Spring Data JPAのリポジトリを利用してデータの取得が可能になり、効率的な開発が実現できます。
