В этом кратком руководстве мы загрузим простое приложение Spring Boot, поддерживаемое базой данных H2 в памяти. Мы будем использовать Spring Data JPA для взаимодействия с нашей базой данных.
Настройка проекта:
Во-первых, давайте сгенерируем наш шаблон проекта с помощью Spring Initializr:

При нажатии на ссылку «Создать проект» , наши файлы проекта будут загружены.
Теперь, если мы внимательно посмотрим на сгенерированный файл POM , мы добавим ниже зависимости:
| 
 01 
02 
03 
04 
05 
06 
07 
08 
09 
10 
11 
12 
13 
14 
15 
16 
17 
 | 
<dependency>    <groupId>org.springframework.boot</groupId>    <artifactId>spring-boot-starter</artifactId></dependency><dependency>    <groupId>org.springframework.boot</groupId>    <artifactId>spring-boot-starter-test</artifactId></dependency><dependency>    <groupId>org.springframework.boot</groupId>    <artifactId>spring-boot-starter-data-jpa</artifactId></dependency><dependency>    <groupId>com.h2database</groupId>    <artifactId>h2</artifactId>    <scope>runtime</scope></dependency> | 
Свойства по умолчанию H2:
Поскольку мы добавили зависимость от базы данных H2 , Spring Boot автоматически настроит связанные свойства. Конфигурации по умолчанию включают в себя:
| 
 1 
2 
3 
4 
5 
 | 
spring.datasource.url=jdbc:h2:mem:testdbspring.datasource.driverClassName=org.h2.Driverspring.datasource.username=saspring.datasource.password=spring.h2.console.enabled=false | 
Давайте переопределим некоторые из этих свойств, определив их в нашем файле application.properties :
| 
 1 
2 
3 
 | 
spring.h2.console.enabled=truespring.h2.console.path=/h2spring.datasource.url=jdbc:h2:mem:university | 
Здесь нашей базой данных будет университет . Мы также включили консоль H2 и установили ее контекстный путь.
Определение сущностей:
Теперь мы определим сущность Student :
| 
 01 
02 
03 
04 
05 
06 
07 
08 
09 
10 
11 
12 
13 
14 
15 
16 
17 
18 
 | 
@Entitypublic class Student {    @Id    @GeneratedValue(strategy = GenerationType.AUTO)    private Integer id;      private String name;         public Student(String name) {        this.name = name;       }      //getters, setters      public String toString() {        return "{id=" + id + ", name=" + name + "}";    }} | 
И соответствующий репозиторий Spring Data JPA:
| 
 1 
2 
3 
4 
 | 
@Repositorypublic interface StudentRepository  extends CrudRepository<Student, Integer> {} | 
Сущность Student будет отображена в таблицу базы данных с тем же именем. Если мы хотим, мы можем указать другое имя таблицы с аннотацией @Table .
Класс приложения:
Наконец, давайте реализуем наш класс UniversityApplication :
| 
 01 
02 
03 
04 
05 
06 
07 
08 
09 
10 
11 
12 
13 
14 
15 
16 
17 
18 
19 
20 
21 
 | 
@SpringBootApplicationpublic class UniversityApplication {      public static void main(String[] args) {        SpringApplication.run(UniversityApplication.class, args);          }      @Bean    public CommandLineRunner testApp(StudentRepository repo) {        return args -> {            repo.save(new Student("James"));            repo.save(new Student("Selena"));              List<Student> allStudents = repo.findAll();            System.out.println("All students in DB: " + allStudents);              Student james = repo.findById(1);            System.out.println("James: " + james);        };    }} | 
Этот класс является отправной точкой для нашего приложения Spring Boot. Здесь аннотация @SpringBootApplication эквивалентна совместному использованию @ComponentScan, @EnableAutoConfiguration и @SpringConfiguration .
Мы также определили экземпляр CommandLineRunner . И поэтому, когда мы запустим наше приложение, наши журналы консоли будут иметь:
| 
 1 
2 
3 
4 
 | 
UniversityApplication:All students in DB: [{id=1, name=James} , {id=2, name=Selena}]James: {id=1, name=James}... | 
Обратите внимание, что в Spring Boot все сущности в идеале должны быть определены либо на том же уровне пакета, либо на более низких уровнях (в подпакетах), чем у основного класса приложения . Если это так, Spring Boot автоматически просканирует все эти объекты.
Доступ к консоли H2:
Мы также можем проверить записи базы данных на консоли H2.
Для этого мы откроем URL: http: // localhost: 8080 / h2 в любом браузере и воспользуемся конфигурациями нашей базы данных для входа в систему. С его помощью мы сможем легко увидеть все наши созданные таблицы и записи на инструментальной панели консоли UI.
Вывод:
  В этом руководстве мы загрузили очень простое приложение Spring Boot с одной сущностью.  Это приложение интегрировано с базой данных H2 и использует Spring Data JPA. 
  Мы можем легко расширить его, чтобы удовлетворить гораздо более широкую область применения. 
| 
 Опубликовано на Java Code Geeks с разрешения Шубхры Шриваставы, партнера нашей программы JCG . Смотреть оригинальную статью здесь: Spring Boot с базой данных H2 Мнения, высказанные участниками Java Code Geeks, являются их собственными.  |