В этом кратком руководстве мы загрузим простое приложение 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, являются их собственными. |