Skip to content

h2 database spring

Чтобы настроить проект на Spring для работы с базой данных H2 и сохранить данные на диск, выполните следующие шаги:

1. Добавьте зависимости в ваш проект

Если вы используете Maven, добавьте следующие зависимости в ваш pom.xml:

<dependency>
    <groupId>com.h2database</groupId>
    <artifactId>h2</artifactId>
    <version>2.1.214</version> <!-- Убедитесь, что используете последнюю версию -->
</dependency>
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>

Если вы используете Gradle, добавьте следующие строки в ваш build.gradle:

implementation 'com.h2database:h2:2.1.214' // Убедитесь, что используете последнюю версию
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'

2. Настройте application.properties

Создайте или отредактируйте файл src/main/resources/application.properties и добавьте следующие настройки:

# Настройки H2
spring.datasource.url=jdbc:h2:file:./data/mydatabase;AUTO_SERVER=TRUE
spring.datasource.driver-class-name=org.h2.Driver
spring.datasource.username=sa
spring.datasource.password=
spring.h2.console.enabled=true

# Настройки JPA
spring.jpa.hibernate.ddl-auto=update
spring.jpa.show-sql=true

3. Создайте сущности и репозитории

Создайте класс-сущность, который будет представлять таблицу в базе данных. Например:

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;

@Entity
public class User {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;
    private String name;

    // Геттеры и сеттеры
}

Создайте репозиторий для работы с сущностью:

import org.springframework.data.jpa.repository.JpaRepository;

public interface UserRepository extends JpaRepository<User, Long> {
}

4. Создайте сервис и контроллер

Создайте сервис для работы с данными:

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public class UserService {
    @Autowired
    private UserRepository userRepository;

    public List<User> findAll() {
        return userRepository.findAll();
    }

    public User save(User user) {
        return userRepository.save(user);
    }
}

Создайте контроллер для обработки HTTP-запросов:

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;

@RestController
@RequestMapping("/users")
public class UserController {
    @Autowired
    private UserService userService;

    @GetMapping
    public List<User> getAllUsers() {
        return userService.findAll();
    }

    @PostMapping
    public User createUser(@RequestBody User user) {
        return userService.save(user);
    }
}

5. Запустите приложение

Теперь вы можете запустить ваше Spring Boot приложение. База данных H2 будет создана на диске в указанном вами месте, и вы сможете взаимодействовать с ней через REST API.

6. Доступ к H2 Console (опционально)

Если вы хотите получить доступ к H2 Console для управления базой данных через веб-интерфейс, добавьте следующую настройку в application.properties:

spring.h2.console.enabled=true

Теперь вы можете открыть H2 Console по адресу http://localhost:8080/h2-console и использовать те же параметры подключения, что и в application.properties.

Теперь ваш проект на Spring настроен для работы с базой данных H2, и данные будут сохраняться на диск.