В этом кратком руководстве мы загрузим простое приложение 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:testdb spring.datasource.driverClassName=org.h2.Driver spring.datasource.username=sa spring.datasource.password= spring.h2.console.enabled= false |
Давайте переопределим некоторые из этих свойств, определив их в нашем файле application.properties :
1
2
3
|
spring.h2.console.enabled= true spring.h2.console.path= /h2 spring.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
|
@Entity public 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
|
@Repository public 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
|
@SpringBootApplication public 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, являются их собственными. |