1. Gambaran keseluruhan
Dalam tutorial ini, kita akan meneroka menggunakan H2 dengan Spring Boot. Sama seperti pangkalan data lain, terdapat sokongan intrinsik penuh untuknya dalam ekosistem Spring Boot.
2. Kebergantungan
Mari kita mulakan dengan pergantungan h2 dan spring-boot-starter-data-jpa :
org.springframework.boot spring-boot-starter-data-jpa com.h2database h2 runtime
3. Konfigurasi Pangkalan Data
Secara lalai, Spring Boot mengkonfigurasi permohonan untuk menyambung ke kedai dalam ingatan dengan nama pengguna yang sa dan kata laluan kosong .
Walau bagaimanapun, kami dapat mengubah parameter tersebut dengan menambahkan sifat 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
Berdasarkan reka bentuk, pangkalan data dalam memori tidak stabil, dan data akan hilang ketika kita memulakan semula aplikasi.
Kita boleh mengubah tingkah laku itu dengan menggunakan storan berasaskan fail. Untuk melakukan ini, kita perlu mengemas kini spring.datasource.url :
spring.datasource.url=jdbc:h2:file:/data/demo
Pangkalan data juga boleh beroperasi dalam mod lain.
4. Operasi Pangkalan Data
Menjalankan operasi CRUD dengan H2 dalam Spring Boot adalah sama dengan pangkalan data SQL yang lain, dan tutorial kami dalam siri Spring Persistence melakukan tugas yang baik untuk merangkumi ini.
Sementara itu, mari kita tambahkan fail data.sql dalam src / main / sumber :
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 automatik akan mengambil data.sql dan menjalankannya dengan pangkalan data H2 kami yang dikonfigurasi semasa permulaan aplikasi. Ini adalah kaedah yang baik untuk membuat pangkalan data untuk ujian atau tujuan lain.
5. Mengakses Konsol H2
Pangkalan data H2 mempunyai konsol GUI tertanam untuk melayari kandungan pangkalan data dan menjalankan pertanyaan SQL. Secara lalai, konsol H2 tidak diaktifkan pada musim bunga.
Untuk mengaktifkannya, kita perlu menambahkan harta berikut ke application.properties :
spring.h2.console.enabled=true
Kemudian, setelah memulakan aplikasi, kita dapat menavigasi ke // localhost: 8080 / h2-console , yang akan memberi kami halaman log masuk.
Di halaman log masuk, kami akan memberikan bukti kelayakan yang sama seperti yang kami gunakan dalam aplikasi .

Setelah kami berhubung, kami akan melihat halaman web yang lengkap yang menyenaraikan semua jadual di sebelah kiri halaman dan kotak teks untuk menjalankan pertanyaan SQL:

Konsol web mempunyai ciri lengkap automatik yang mencadangkan kata kunci SQL. Fakta bahawa konsol ringan menjadikannya berguna untuk memeriksa pangkalan data secara visual atau menjalankan SQL mentah secara langsung.
Lebih-lebih lagi, kita dapat mengkonfigurasi lebih jauh konsol dengan menentukan sifat berikut dalam aplikasi projek. Harta 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 coretan di atas, kami menetapkan jalan konsol menjadi / h2-console , yang relatif dengan alamat dan port aplikasi yang sedang kami jalankan. Oleh itu, jika aplikasi kami berjalan di // localhost: 9001 , konsol akan tersedia di // localhost: 9001 / h2-console.
Selanjutnya, kami menetapkan spring.h2.console.settings.trace ke false untuk mengelakkan output jejak, dan kami juga dapat mematikan akses jarak jauh dengan menetapkan spring . h2.console.settings.web-allow-others to false .
6. Kesimpulannya
Pangkalan data H2 sepenuhnya serasi dengan Spring Boot. Kami telah melihat bagaimana mengkonfigurasinya dan bagaimana menggunakan konsol H2 untuk menguruskan pangkalan data kami yang sedang berjalan.
Kod sumber lengkap boleh didapati di GitHub.