SpringBootとHibernateでmysqlをselectするサンプルです。
Hibernate(ハイバネート)はオープンソースのフリーソフトです。
オブジェクト関係マッピングと呼ばれます。(ORM,Object-relational mapping)
| 確認環境 ・Spring Boot 2.5 ・JDK 11 ・STS 4  | 
目次
| サンプル | 環境 | 
| 1.pom.xmlの設定 | |
| 2.application.propertiesの設定 | |
| 3.hibernate-config.xmlの設定 | |
| 4.エンティティのクラス(Syain.java) | |
| 5.レポジトリのクラス(SyainRepository.java) | |
| 6.コントローラのクラス(MainController.java) | |
| 画面の確認 | 
環境
今回作成/修正するファイルは以下の赤枠の部分です。

以下は、使用するMySQLのテーブルです。テーブル名は「syain」です。
| id | name | romaji | 
|---|---|---|
| 1 | 鈴木 | suzuki | 
| 2 | 田中 | tanaka | 
| 3 | 佐藤 | sato | 
1.pom.xmlの設定
pom.xmlにhibernatetとmysqlのライブラリを追加します。
		<!-- https://mvnrepository.com/artifact/org.hibernate/hibernate-core -->
		<dependency>
			<groupId>org.hibernate</groupId>
			<artifactId>hibernate-core</artifactId>
		</dependency>
		<!-- https://mvnrepository.com/artifact/org.hibernate/hibernate-annotations -->
		<dependency>
			<groupId>org.hibernate</groupId>
			<artifactId>hibernate-annotations</artifactId>
			<version>3.5.6-Final</version>
		</dependency>
		<dependency>
			<groupId>mysql</groupId>
			<artifactId>mysql-connector-java</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-web</artifactId>
		</dependency>
2.application.propertiesの設定
DB情報は、hibernate-config.xmlに記述します。
server.port = 8765
3.hibernate-config.xmlの設定
hibernate-config.xmlにhibernateの設定を記述しています。ファイル名は任意です。
<!DOCTYPE hibernate-configuration PUBLIC
        "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
        "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
    <session-factory>
        <property name="connection.driver_class">com.mysql.cj.jdbc.Driver</property>
        <property name="connection.url">jdbc:mysql://localhost:3309/testphp</property>
        <property name="connection.username">root</property>
        <property name="connection.password"></property>
        <property name="connection.pool_size">1</property>
        <property name="dialect">org.hibernate.dialect.MySQLDialect</property>
		<property name="current_session_context_class">thread</property>
         <property name="show_sql">true</property>
    </session-factory>
</hibernate-configuration>
8行目のtestphpはデータベース名です。ポート番号は3309にしています。
以下は、redhatのHibernateの設定のリンクです。
https://access.redhat.com/documentation/ja-jp/red_hat_jboss_web_server/1.0/html/hibernate_core_reference_guide/tutorial#tutorial-firstapp-configuration
4.エンティティのクラス(Syain.java)
エンティティのクラスです。Syainテーブルのデータを格納します。
package com.example.demo;
import javax.persistence.Entity;
import javax.persistence.Table;
import javax.persistence.Id;
@Entity
@Table(name="syain")
public class Syain {
    @Id
    private Integer id;
    
    private String name;
    
    private String romaji;
    
    public Integer getId() {
        return id;
    }
	public String getName() {
		return name;
	}
	public String getRomaji() {
		return romaji;
	}
}
5.レポジトリのクラス(SyainRepository.java)
レポジトリのクラスです。SQLを実行します。
package com.example.demo;
import java.util.List;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
import org.springframework.stereotype.Repository;
@Repository
public class SyainRepository {
	@SuppressWarnings("unchecked")
	public List<Syain> findAll() {
		List<Syain> syainList = null;
		SessionFactory sf = new Configuration()
				.configure("hibernate-config.xml")
				.addAnnotatedClass(Syain.class)
				.buildSessionFactory();
		Session session = sf.getCurrentSession();
		try {
			session.beginTransaction();
			syainList = session.createQuery("from Syain").list();
			session.getTransaction().commit();
		} catch (Exception e) {
			session.getTransaction().rollback();
			e.printStackTrace();
		} finally {
			sf.close();
		}
		return syainList;
	}
}
17行目は、Hibernateの設定ファイル(hibernate-config.xml)を読み込んでいます。
25行目のトランザクション(beginTransaction)は必要です。
26行目は、Syainテーブルからデータを取得しています。
35行目は、取得したデータをリストで返します。
6.コントローラのクラス(MainController.java)
コントローラのクラスです。
package com.example.demo;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class MainController {
	@Autowired
	private SyainRepository syainRepository;
	@GetMapping("/test1")
	public List<Syain> get() {
		return syainRepository.findAll();
	}
}
7行目のRestControllerアノテーションは、メソッドの戻り値を画面に表示します。
14行目は、SyainRepositoryクラスのfindAllメソッドを実行します。
画面の確認
1.以下のURLにアクセスします。
http://localhost:8765/test1
2.画面にJSON形式で以下のように表示されます。
| [{"id":1,"name":"鈴木","romaji":"suzuki"},{"id":2,"name":"田中","romaji":"tanaka"},{"id":3,"name":"佐藤","romaji":"sato"}] | 
関連の記事
SpringBoot JPAでMySQLにselectするサンプル
SpringBoot MySQL+JDBCでselectするサンプル
SpringBoot MySQL+JDBCでDB更新するサンプル
