Spring Boot Dengan Database H2

1. Ikhtisar

Dalam tutorial ini, kita akan menjelajahi penggunaan H2 dengan Spring Boot. Sama seperti database lain, ada dukungan intrinsik penuh untuknya di ekosistem Spring Boot.

2. Dependensi

Mari kita mulai dengan dependensi h2 dan spring-boot-starter-data-jpa :

 org.springframework.boot spring-boot-starter-data-jpa   com.h2database h2 runtime 

3. Konfigurasi Basis Data

Secara default, Musim Semi Boot mengkonfigurasi aplikasi untuk terhubung ke sebuah toko di memori dengan nama pengguna sa dan password kosong .

Namun, kita dapat mengubah parameter tersebut dengan menambahkan properti berikut ke file application.properties :

spring.datasource.url=jdbc:h2:mem:testdb spring.datasource.driverClassName=org.h2.Driver spring.datasource.username=sa spring.datasource.password=password spring.jpa.database-platform=org.hibernate.dialect.H2Dialect

Secara desain, basis data dalam memori mudah berubah, dan data akan hilang saat kita memulai ulang aplikasi.

Kita dapat mengubah perilaku itu dengan menggunakan penyimpanan berbasis file. Untuk melakukan ini, kami perlu memperbarui spring.datasource.url :

spring.datasource.url=jdbc:h2:file:/data/demo

Basis data juga dapat beroperasi dalam mode lain.

4. Operasi Database

Melakukan operasi CRUD dengan H2 dalam Spring Boot sama dengan database SQL lainnya, dan tutorial kami di seri Spring Persistence melakukan pekerjaan yang baik untuk membahas hal ini.

Sementara itu, mari tambahkan file data.sql di src / main / resources :

DROP TABLE IF EXISTS billionaires; CREATE TABLE billionaires ( id INT AUTO_INCREMENT PRIMARY KEY, first_name VARCHAR(250) NOT NULL, last_name VARCHAR(250) NOT NULL, career VARCHAR(250) DEFAULT NULL ); INSERT INTO billionaires (first_name, last_name, career) VALUES ('Aliko', 'Dangote', 'Billionaire Industrialist'), ('Bill', 'Gates', 'Billionaire Tech Entrepreneur'), ('Folrunsho', 'Alakija', 'Billionaire Oil Magnate');

Spring Boot secara otomatis akan mengambil data.sql dan menjalankannya pada database H2 yang telah dikonfigurasi selama startup aplikasi. Ini adalah cara yang baik untuk memasukkan database untuk pengujian atau tujuan lain.

5. Mengakses Konsol H2

Database H2 memiliki konsol GUI tertanam untuk menelusuri konten database dan menjalankan kueri SQL. Secara default, konsol H2 tidak diaktifkan di Spring.

Untuk mengaktifkannya, kita perlu menambahkan properti berikut ke application.properties :

spring.h2.console.enabled=true

Kemudian, setelah menjalankan aplikasi, kita dapat membuka // localhost: 8080 / h2-console , yang akan menampilkan halaman login.

Di halaman login, kami akan memberikan kredensial yang sama dengan yang kami gunakan di application.properties :

Setelah terhubung, kita akan melihat halaman web komprehensif yang mencantumkan semua tabel di sisi kiri halaman dan kotak teks untuk menjalankan kueri SQL:

Konsol web memiliki fitur pelengkapan otomatis yang menyarankan kata kunci SQL. Fakta bahwa konsol itu ringan membuatnya berguna untuk memeriksa database secara visual atau mengeksekusi SQL mentah secara langsung.

Selain itu, kita dapat mengonfigurasi konsol lebih lanjut dengan menentukan properti berikut di application.properties proyek dengan nilai yang kita inginkan:

spring.h2.console.path=/h2-console spring.h2.console.settings.trace=false spring.h2.console.settings.web-allow-others=false

Dalam cuplikan di atas, kami menyetel jalur konsol menjadi / h2-console , yang terkait dengan alamat dan port aplikasi yang sedang berjalan. Oleh karena itu, jika aplikasi kita berjalan di // localhost: 9001 , konsol akan tersedia di // localhost: 9001 / h2-console.

Lebih lanjut, kami menyetel spring.h2.console.settings.trace ke false untuk mencegah keluaran jejak, dan kami juga dapat menonaktifkan akses jarak jauh dengan menyetel pegas . h2.console.settings.web-allow-others menjadi false .

6. Kesimpulan

Database H2 sepenuhnya kompatibel dengan Spring Boot. Kami telah melihat cara mengkonfigurasinya dan cara menggunakan konsol H2 untuk mengelola database kami yang sedang berjalan.

Kode sumber lengkap tersedia di GitHub.