מגף אביב עם מסד H2

1. סקירה כללית

במדריך זה נחקור שימוש ב- H2 עם Spring Boot. בדיוק כמו מאגרי מידע אחרים, קיימת תמיכה פנימית מלאה לכך במערכת האקולוגית Spring Boot.

2. תלות

נתחיל עם h2 ו spring-boot-starter-data-jpa תלות:

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

3. תצורת מסד נתונים

כברירת מחדל, Spring Boot מגדיר את היישום ל התחבר לחנות בזיכרון עם שם המשתמש sa וסיסמה ריקה.

עם זאת, אנו יכולים לשנות את הפרמטרים הללו על ידי הוספת המאפיינים הבאים ל- application.properties קוֹבֶץ:

spring.datasource.url = jdbc: h2: mem: testdb spring.datasource.driverClassName = org.h2.Driver spring.datasource.username = sa spring.datasource.password = סיסמה spring.jpa.database-platform = org.hibernate. ניב. H2 Dialect

לפי תכנון, מסד הנתונים בזיכרון הוא תנודתי, והנתונים יאבדו כאשר נפעיל מחדש את היישום.

אנו יכולים לשנות התנהגות זו באמצעות אחסון מבוסס קבצים. לשם כך עלינו לעדכן את spring.datasource.url:

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

מסד הנתונים יכול לפעול גם במצבים אחרים.

4. פעולות בסיסי נתונים

ביצוע פעולות CRUD עם H2 בתוך Spring Boot זהה לזה של מאגרי SQL אחרים, והמדריכים שלנו בסדרת Spring Persistence עושים עבודה טובה בכיסוי זה.

בינתיים בואו נוסיף א data.sql קובץ src / main / resources:

טפטוף טבלה אם קיים מיליארדרים; צור טבלה מיליארדרים (מזהה INT מפתח אוטומטי_התקשרות מפתח ראשוני, שם פרטי VARCHAR (250) לא אפס, שם משפחה VARCHAR (250) לא אפס, קריירה VARCHAR (250) ערך אפס); הכנס למיליארדרים (שם פרטי, שם משפחה, קריירה) VALUES ('Aliko', 'Dangote', 'Millionaire Industrial Industrial'), ('Bill', 'Gates', 'Millionaire Tech Tech יזם'), ('Folrunsho', 'Alakija' , 'מיליארדר שמן מגנט');

אתחול האביב ירים אוטומטית את data.sql והפעל אותו כנגד מסד הנתונים H2 שהוגדר במהלך הפעלת היישום. זוהי דרך טובה לזרוע את מסד הנתונים לבדיקה או למטרות אחרות.

5. גישה למסוף H2

למסד הנתונים H2 יש קונסולת GUI מוטמעת לגלישה בתוכן של מסד נתונים ולהפעלת שאילתות SQL. כברירת מחדל, קונסולת H2 אינה מופעלת באביב.

כדי לאפשר זאת, עלינו להוסיף את המאפיין הבא application.properties:

spring.h2.console.enabled = נכון

לאחר מכן, לאחר הפעלת היישום, אנו יכולים לנווט אל // localhost: 8080 / h2-console, שיציג בפנינו דף כניסה.

בדף הכניסה נספק את אותם האישורים שהשתמשנו בהם ב- application.properties:

לאחר ההתחברות, נראה דף אינטרנט מקיף המפרט את כל הטבלאות בצד שמאל של הדף ותיבת טקסט להפעלת שאילתות SQL:

לקונסולת האינטרנט יש תכונה להשלמה אוטומטית המציעה מילות מפתח של SQL. העובדה שהקונסולה קלת משקל הופכת אותה ליעילה לבדיקה חזותית של מסד הנתונים או לביצוע SQL גולמי ישירות.

יתר על כן, אנו יכולים לקבוע את תצורת המסוף נוספת על ידי ציון המאפיינים הבאים בפרויקט application.properties עם הערכים הרצויים שלנו:

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

בקטע הקוד שלמעלה, הגדרנו את נתיב המסוף / h2- קונסולה, שזה יחסית לכתובת ולנמל של היישום הרץ שלנו. לכן, אם האפליקציה שלנו פועלת בשעה // localhost: 9001, המסוף יהיה זמין ב // localhost: 9001 / h2-console.

יתר על כן, קבענו spring.h2.console.settings.trace ל שֶׁקֶר כדי למנוע פלט עקבות ונוכל להשבית גישה מרחוק על ידי הגדרה אביב.h2.console.settings.web-allow-others ל שֶׁקֶר.

6. מסקנה

מסד הנתונים H2 תואם לחלוטין עם Spring Boot. ראינו כיצד להגדיר אותו וכיצד להשתמש במסוף H2 לניהול מסד הנתונים הפועל שלנו.

קוד המקור השלם זמין ב- GitHub.