java - الربيع التمهيد الافتراضي H2 jdbc(و H2 وحدة التحكم)




spring jpa (6)

إنني ببساطة أحاول رؤية محتوى قاعدة البيانات H2 لقاعدة بيانات H2 المدمجة التي ينشئها التمهيد الربيعي عندما لا أحدد أي شيء في تطبيقي.الخدمات وأبدأ برقم mvn: run. يمكنني أن أرى JPA في حالة السبات ، مما يؤدي إلى إنشاء الجداول ، ولكن إذا حاولت الوصول إلى وحدة التحكم h2 الموجودة في عنوان URL الموجود أسفل قاعدة البيانات ، فلا توجد جداول.

http://localhost:8080/console/

أرى اقتراحات مثل هذه: عرض محتوى قاعدة البيانات المضمنة H2 التي بدأها Spring

لكنني لا أعرف من أين أضع XML المقترح في التمهيد الربيعي ، وحتى لو فعلت ذلك ، لا أريد أن تكون h2console متاحة بعد الآن عندما يتم تكوين قاعدة بيانات خارجية لذلك من المرجح أن أحتاج إلى التعامل مع هذا مع نوع ما من الشفرة الشرطية (أو ربما فقط تسمح للربيع بالتعامل معه تلقائيًا في الحالة المثالية حيث أقوم بتضمين H2 فقط عند تنشيط ملف تعريف maven).

هل لديها أي رمز عينة تظهر كيفية الحصول على وحدة التحكم H2 تعمل في التمهيد (وأيضا طريقة لمعرفة ما هي سلسلة اتصال jdbc التي يستخدمها الربيع هو)؟


إجابة مماثلة مع دليل خطوة بخطوة.

  1. أضف تبعية أدوات المطور إلى pom.xml أو build.gradle

مخضرم

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-devtools</artifactId>
        <optional>true</optional>
    </dependency>
</dependencies>

Gradle

dependencies {
    compile("org.springframework.boot:spring-boot-devtools")
}
  1. الوصول إلى db من http://localhost:8080/h2-console/
  2. حدد jdbc:h2:mem:testdb كعنوان JDBC URL
  3. يجب أن تشاهد الكيان الذي حددته في مشروعك كجدول.

إذا كنت تستخدم أدوات مطور Spring Boot ، فقد تم تمكين H2 Console بشكل افتراضي. يمكن الوصول إليه من /h2-console /. على واجهة تسجيل الدخول ، للحصول على إدخال JDBC URL استخدم قيمة jdbc:h2:mem:testdb . انتبه إلى سلسلة mem .

إذا كنت لا تستخدم أدوات مطور Spring Boot ، فيمكنك تمكين وحدة التحكم في application.properties باستخدام spring.h2.console.enabled=true . سيؤدي هذا إلى تمكين وحدة التحكم تحت /h2-console . إذا كنت تريد تغيير عنوان URL ، فيمكنك إضافة إدخال آخر spring.h2.console.path=my_console_path .

اسم المخطط الافتراضي هو testdb .

مزيد من التفاصيل في docs.spring.io/spring-boot/docs/current/reference/html/… .


كان لدي أقل من الخصائص في / resources / application.properties. بعد تشغيل التمهيد الربيع ، باستخدام هذا URL ( http://localhost:8080/h2-console/ ) ، كان الجدول في وحدة التحكم H2 مرئية وقراءة لعرض بيانات الجدول ، كما يمكنك تشغيل أوامر SQL بسيطة. شيء واحد ، في رمز java الخاص بك ، أثناء إحضار البيانات ، تكون أسماء الأعمدة هي الحالة العليا ، على الرغم من أن schema.sql يستخدم أسماء الحالة السفلية :)

spring.datasource.initialize=true
spring.datasource.url=jdbc:h2:mem:testdb;DB_CLOSE_DELAY=- 1;DB_CLOSE_ON_EXIT=FALSE
spring.datasource.driverClassName=org.h2.Driver
spring.datasource.username=sa
spring.datasource.password=
spring.h2.console.enabled=true


من http://docs.spring.io/spring-boot/docs/current/reference/html/common-application-properties.html

H2 Web Console (H2ConsoleProperties):

spring.h2.console.enabled=true //Enable the console.
spring.h2.console.path=/h2-console //Path at which the console will be available.

كانت إضافة السطرين المذكورين أعلاه إلى ملف application.properties الخاص بي كافية للوصول إلى وحدة التحكم في قاعدة بيانات H2 ، باستخدام اسم المستخدم (sa) وكلمة المرور (فارغ).


من أجل الحصول على الجداول كل ما عليك القيام به هو إنشاء 2 sql files schema.sql (لإنشاء الجدول) و data.sql (بيانات الجداول التي تم إنشاؤها). هذه الملفات ليتم وضعها في مجلد src / main / resources. تقوم أداة التمهيد الربيعي بالكشف عنهم وتعتني بالباقي أثناء وقت التشغيل.

إذا كان استخدام أكثر من 2 DB في مشروعك يضمن استخدام ملفات معينة مثل (schema-h2.sql - لـ h2 DB ، أو schema-oracle.sql - لـ oracle DB). الشيء نفسه الذي يجب اتباعه ل data.sql أيضا.

تأكد أيضًا من قيامك بإسقاط الجداول عن طريق إضافة بيان جدول إفلات في schema.sql الخاص بك كإعلان أول. لتجنب إلحاق سجلات مكررة.

الرابط للحصول على التمهيد الربيع هنا.

بلدي application.properties على النحو التالي.

spring.datasource.url=jdbc:h2:~/file/Shiva;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE
spring.datasource.driver-class-name=org.h2.Driver
spring.datasource.username=sa
spring.datasource.password=
spring.datasource.platform=h2
spring.jpa.database-platform=org.hibernate.dialect.H2Dialect
spring.h2.console.enabled=true
spring.datasource.initialize=true 
spring.error.whitelabel.enabled=true
spring.h2.console.path=/console
spring.jpa.hibernate.ddl-auto=none
spring.datasource.continue-on-error=true
spring.jpa.hibernate.ddl-auto=create
spring.hibernate.hbm2ddl.auto=update
spring.hibernate.show_sql=true

يمكنك اتباع الخطوات في الرابط أدناه.

https://springframework.guru/using-the-h2-database-console-in-spring-boot-with-spring-security/





spring-boot