Je suis nouveau au printemps. J'essaie de travailler avec la base de données H2 et JDBC (pas JPA / Hibernate). P>
Donc, avec le printemps initializr, lorsque j'ajoute ces dépendances: P>
Spring-bootter-starter-web code> li>
-
Spring-boot-démarreur-data-jpa code> li>
-
h2 code> li>
ul>
et mettre cette propriété à true: printemps.h2.console.enabled = true code> p>
La base de données MEM: Testdb code> est créée et je peux vous connecter à l'adresse suivante: localhost: 8080 / H2-console code> p> P>
Mais lorsque je change la dépendance JPA à: p>
-
Spring-boot-démarreur-data-jdbc code> li>
ul>
La base de données n'est pas créée et j'ai ce message d'erreur: P>
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) Code> P >
Je voudrais donc savoir pourquoi cela ne fonctionne pas avec JDBC, et si vous connaissez une solution pour le faire fonctionner. P>
J'ai trouvé deux articles sur le Web et il semble qu'ils puissent avoir la base de données créée avec JDBC: P>
- Intégration de la chaussure à ressort et JDBC à ressort avec H2 et Starter JDBC li>
- jdbc de ressort et jdbc à ressort avec H2 li>
ul>
mise à jour: strong> p>
J'ai essayé de faire la même chose à la maison dans mon ordinateur personnel et ça marche ... p>
Je ne sais pas pourquoi cela ne fonctionne pas dans l'ordinateur de travail, bien que cela fonctionne avec JPA. P>
Dans les journaux, il manque ces lignes: P>
com.zaxxer.hikari.hikaridatasource: hikaripool-1 - départ ... code> p>
com.zaxxer.hikari.hikaridatasource: Hikaripool-1 - Démarrer terminé. Code> P>
o.s.s.a.h2.h2consoleAutoconfiguration: Console H2 disponible à "/ H2-console". Base de données disponible à 'JDBC: H2: MEM: TestDB' CODE> P>
update2: strong> p>
J'ai trouvé la solution: p>
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 P>
version de ressort de version p>
Avec cette version, cela fonctionne avec JPA mais pas avec JDBC ... P>
3 Réponses :
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é. P>
J'utilise la même propriété: printemps.datasource.url = jdbc: H2: MEM: Testdb code> dans les deux cas (qui correspond à la valeur par défaut), mais ne fonctionne toujours pas
Vous avez besoin d'une dépendance à Spring-JDBC pour qu'une base de données intégrée soit configuré automatiquement. p> blockQuote>
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 P>
Ceci signifie pour ces deux Les dépendances H2 seront configurées automatiquement. p>
mise à jour: strong> p> pour les deux configurations, je suis capable d'accéder à la base de données avec http: // localhost: 8080 / H2-console / P>
Et vous obtiendra un journal similaire lorsque l'application de démarrage du ressort démarre p>
xxx pré> p>
Comme je l'ai dit dans la mise à jour, cette ligne est manquante, mais cela fonctionne dans mon ordinateur personnel ...
J'ai trouvé la solution: p>
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 P>
Version Spring Boot P>
Avec cette version, cela fonctionne avec JPA mais pas avec JDBC ... P>
Avez-vous passé par Ceci