この記事では、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のリポジトリを利用してデータの取得が可能になり、効率的な開発が実現できます。