0
votes

Base de données H2 Créée avec Spring-Boot-Starter-Data-JPA mais pas avec Spring-Boot-Data Starter-JDBC

Je suis nouveau au printemps. J'essaie de travailler avec la base de données H2 et JDBC (pas JPA / Hibernate).

Donc, avec le printemps initializr, lorsque j'ajoute ces dépendances:

  • Spring-bootter-starter-web
  • Spring-boot-démarreur-data-jpa
  • h2

    et mettre cette propriété à true: printemps.h2.console.enabled = true

    La base de données MEM: Testdb est créée et je peux vous connecter à l'adresse suivante: localhost: 8080 / H2-console

    Mais lorsque je change la dépendance JPA à:

    • Spring-boot-démarreur-data-jdbc

      La base de données n'est pas créée et j'ai ce message d'erreur:

      Base de données "MEM: TestDB" non trouvé, non plus pré-créez-le ou autorisez la création de la base de données distante (non recommandée dans les environnements sécurisés) [90149-200] 90149/90149 (Aide)

      Je voudrais donc savoir pourquoi cela ne fonctionne pas avec JDBC, et si vous connaissez une solution pour le faire fonctionner.

      J'ai trouvé deux articles sur le Web et il semble qu'ils puissent avoir la base de données créée avec JDBC:

      • Intégration de la chaussure à ressort et JDBC à ressort avec H2 et Starter JDBC
      • jdbc de ressort et jdbc à ressort avec H2

        mise à jour:

        J'ai essayé de faire la même chose à la maison dans mon ordinateur personnel et ça marche ...

        Je ne sais pas pourquoi cela ne fonctionne pas dans l'ordinateur de travail, bien que cela fonctionne avec JPA.

        Dans les journaux, il manque ces lignes:

        com.zaxxer.hikari.hikaridatasource: hikaripool-1 - départ ...

        com.zaxxer.hikari.hikaridatasource: Hikaripool-1 - Démarrer terminé.

        o.s.s.a.h2.h2consoleAutoconfiguration: Console H2 disponible à "/ H2-console". Base de données disponible à 'JDBC: H2: MEM: TestDB'

        update2:

        J'ai trouvé la solution:

        Comme je l'ai dit, j'utilise Initializr de printemps pour bootstrap le projet. Dans le Job PC, je n'ai pas pu utiliser la dernière version de Spring Boot (2.2.4), donc j'ai choisi 2.1.12

        version de ressort de version

        Avec cette version, cela fonctionne avec JPA mais pas avec JDBC ...


1 commentaires

Avez-vous passé par Ceci


3 Réponses :


0
votes

Les deux liens fournis par vous permettent de créer une application de démarrage à ressort avec les dépendances suivantes: Web, JDBC, H2, DevTools. Si vous modifiez la dépendance «Spring-Boot-bootter-JDBC» à «Spring-boot-démarreur-Data-Data-JPA», tout fonctionne de la même manière, par exemple La base de données H2 est créée et accessible. Assurez-vous de spécifier la même configuration dans les deux cas dans le fichier Application.Properties, 'Spring.DataSource.url' n'a pas été changé.


1 commentaires

J'utilise la même propriété: printemps.datasource.url = jdbc: H2: MEM: Testdb dans les deux cas (qui correspond à la valeur par défaut), mais ne fonctionne toujours pas



1
votes

du Documentation

Vous avez besoin d'une dépendance à Spring-JDBC pour qu'une base de données intégrée soit configuré automatiquement.

Spring-boot-starter-data-data-jpa et démarreur de démarrage à ressort -Data-JDBC obtient de manière transitive à Spring-jdbc via sa dépendance sur Spring-Boot-Starter-JDBC

Ceci signifie pour ces deux Les dépendances H2 seront configurées automatiquement.

mise à jour:

pour les deux configurations, je suis capable d'accéder à la base de données avec http: // localhost: 8080 / H2-console /

Et vous obtiendra un journal similaire lorsque l'application de démarrage du ressort démarre xxx


1 commentaires

Comme je l'ai dit dans la mise à jour, cette ligne est manquante, mais cela fonctionne dans mon ordinateur personnel ...



0
votes

J'ai trouvé la solution:

Comme je l'ai dit, j'utilise Initializr de printemps pour bootstrap le projet. Dans le Job PC, je n'ai pas pu utiliser la dernière version de Spring Boot (2.2.4), donc j'ai choisi 2.1.12

Version Spring Boot

Avec cette version, cela fonctionne avec JPA mais pas avec JDBC ...


0 commentaires