H2 Datenbank ansehen

Zugriff auf die H2 Entwicklungsdatenbank

Spring Boot legt für die Entwicklung eine in-memory Datenbank an, standardmäßig H2. Mit H2 kommt eine WebConsole-Klasse, die einen Zugriff aus dem Browser ermöglicht. Das hilft bei der Programmentwicklung und Fehlersuche, denn man kann direkt sehen, welche Daten in der Datenbank abgelegt sind.

dbwebconsole01

Mit wenigen Schritten ist die H2-Console einsatzfähig und konfiguriert:

  1. Gradle Script builNeeded ausführen
    buildNeeded

    Konfigurationsdatei so ändern, dass die H2 Bibliothek zur Compile-Zeit verfügbar ist, also in gradle.config run('com.h2database:h2') in compile('com.h2database:h2') ändern. Eventuell muss anschließend das Gradle-Script buildNeeded ausgeführt werden, damit die Klasse von IntelliJ gefunden wird.

  2. Konfigurationsdatei hinzufügen, die die WebConsole Klasse lädt und auf eine URL (s. Zeile 12) abbildet.
    package de.fh_zwickau.pti.geobe;
    import org.h2.server.web.WebServlet;
    import org.springframework.boot.context.embedded.ServletRegistrationBean;
    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.Configuration;
    @Configuration
    public class WebConfiguration {
        @Bean
        ServletRegistrationBean h2servletRegistration(){
            ServletRegistrationBean registrationBean =
                    new ServletRegistrationBean( new WebServlet());
            registrationBean.addUrlMappings("/console/*");
            return registrationBean;
        }
    }
  3. Wenn Spring Security aktiviert wurde, muss die SecurityConfiguration ergänzt werden, um einen Zugriff auf die Console zuzulassen. Die folgenden Zeilen müssen zur Methode configure(HttpSecurity httpSecurity) hinzugefügt werden, soweit sie noch nicht vorhanden sind:
    ...
            httpSecurity.authorizeRequests()
                    .antMatchers("/console/**").permitAll();
            // Use Vaadin's built-in CSRF protection instead
            httpSecurity.csrf().disable();
            httpSecurity.headers().frameOptions().disable();
    
  4. Die Testdatenbank ist dann unter der URL jdbc:h2:mem:testdb, User sa, ohne Passwort erreichbar.

    H2 Console
    H2 Console

Ein Gedanke zu „H2 Datenbank ansehen“

  1. Bevor man die Webkonsole unter /console erreichen kann muss man sich allerdings vorher im Webclient erfolgreich angemeldet haben. Andernfalls wird man stets auf /login umgeleitet.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.