Spring Boot は、リレーショナルおよび非リレーショナルの両方のさまざまな種類のデータベースに簡単に接続できる、人気のある Java 開発フレームワークです。この記事では、Spring Boot がデータベースに接続する方法を、原理やコード例も含めて紹介します。
1. Spring Bootがデータベースに接続する原理
Spring Boot は、Spring Data JPA を使用してデータベースに接続します。Spring Data JPA は Spring Data の一部であり、JPA 仕様に基づいた永続化フレームワークです。これはデータベースと対話する簡単な方法を提供し、基本的な CRUD 操作を簡単に実装できます。
Spring Boot は、リレーショナル データベース (MySQL、PostgreSQL、Oracle、SQL Server など) や非リレーショナル データベース (MongoDB など) を含む、さまざまなデータベースを使用できます。Spring Boot はデータベースごとに異なるドライバーを使用して接続できます。
データベースに接続する前に、Spring Boot プロジェクトの構成ファイルにデータベース接続情報を指定する必要があります。この情報には、データベースの URL、ユーザー名、パスワード、ドライバー名が含まれます。Spring Boot はこの情報を自動的にロードし、それを使用してデータベース接続を作成します。
2. Spring Boot が MySQL データベースに接続するためのサンプルコード
以下は、Spring Boot を使用して MySQL データベースに接続するためのサンプル コードです。まず、MySQL ドライバーの依存関係を pom.xml ファイルに追加する必要があります。
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.26</version>
</dependency>
次に、application.properties ファイルに MySQL データベースの接続情報を指定します。
spring.datasource.url=jdbc:mysql://localhost:3306/mydatabase
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
ここでは、ローカルホスト上の MySQL データベースに接続することを指定し、ユーザー名は「root」、パスワードは「123456」です。
次に、ユーザー情報を表すエンティティ クラス User を作成します。
@Entity
@Table(name = "users")
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String name;
private String email;
// getters and setters
}
ここでは、JPA アノテーションを使用して、エンティティ クラスの名前とテーブルの名前、および指定された ID の生成戦略を指定します。
次に、ユーザー データを操作するメソッドを定義する UserRepository インターフェイスを作成します。
public interface UserRepository extends JpaRepository<User, Long> {
List<User> findByName(String name);
}
ここでは、JpaRepository インターフェイスを拡張し、エンティティ クラスと ID タイプを指定します。このインターフェイスは、ユーザーを名前で検索するメソッドも定義します。
最後に、HTTP リクエストを処理し、UserRepository を使用してデータベースにアクセスする UserController クラスを作成します。
@RestController
@RequestMapping("/users")
public class UserController {
@Autowired
private UserRepository userRepository;
@GetMapping
public List<User> getUsers() {
return userRepository.findAll();
}
@GetMapping("/{name}")
public List<User> getUsersByName(@PathVariable String name) {
return userRepository.findByName(name);
}
@PostMapping
public User createUser(@RequestBody User user) {
return userRepository.save(user);
}
}
ここでは、Spring MVC アノテーションを使用して、HTTP リクエストの処理方法を定義しました。このクラスは、Autowired アノテーションを使用して UserRepository インスタンスを自動的に挿入し、それを使用してデータベースにアクセスします。
3. まとめ
この記事では、Spring Boot がデータベースに接続する方法を、原理やコード例も含めて紹介します。Spring Data JPA を使用すると、Spring Boot はさまざまな種類のデータベースに簡単に接続し、基本的な CRUD 操作を実装できます。実際の開発では、構成ファイルを変更し、エンティティ クラス、リポジトリ インターフェイス、およびコントローラー クラスを作成することでデータベースにアクセスできます。