J'ai une application de démarrage de printemps, où je souhaite tester une insertion de lot dans différentes bases de données. J'ai un fichier POM: et code dans le contrôleur: p> Quand j'ai essayé de le faire, j'ai une erreur p> < Pré> XXX PRE> Comment puis-je le réparer? Définissez le pilote programmatiquement? P> P>
3 Réponses :
Si vous êtes sûr que le pilote est dans votre point de classe, l'erreur peut également découler d'une mauvaise url de connexion. Vérifiez votre syntaxe d'URL, il devrait être soit de p>
Donc, si l'application est la DB, vous devez faire: p>
JDBC: PostgreSQL: //127.0.0.1: 5432 / app p> blockQuote>
Si l'application est un schéma dans une DB, vous devez toujours spécifier votre DB dans l'URL P>
JDBC: PostgreSQL: //127.0.0.1: 5432 / DBName? Currentschema = App P> blockQuote>
Eh bien ce que j'ai fait pour tester cela est créé un projet Maven vide et aux propriétés de l'application sous ressources ajoutées ceci et cela fonctionne pour moi: p> ## Spring DATASOURCE (DataSourceAutoConfiguration & DataSourceProperties)
spring.datasource.url=jdbc:postgresql://localhost:5432/postgres_test
spring.datasource.username= rajtest
spring.datasource.password=
# dialect makes Hibernate generate better SQL for the database
spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.PostgreSQLDialect
# Hibernate ddl auto (create, create-drop, validate, update)
spring.jpa.hibernate.ddl-auto = update
L'OP a déjà le pilote JDBC comme une dépendance et étant donné que le code affiché n'utilise pas de DataSource.
Donc, fondamentalement plutôt que de le faire dans le contrôleur l'a ajouté dans les propriétés de l'application et cela le fait.
Vous manquez mon point de mon point, l'OP n'est actuellement pas drivermanager.geconnection code>, de sorte que toute cette configuration que vous affichez ne résoudra pas son problème, à moins que vous n'expliquiez pas ce qu'il doit changer dans son code pour faire Utilisation de cette config.
@MarkrotteveEL a eut
printemps.datasource.url = jdbc: postgreSQL: // localhost: 5432 strong> / postgres strong> p> p>
Dans votre URL, vous devez ajouter un nom d'hôte et dB p>
URL = "JDBC: PostgreSQL: //" + URL + "? Courrentschema =" + schéma; P>
url = "jdbc: postgreSQL: //" + URL + "/" + schéma strong> Utilisez cette URL p>
Essayez de charger le pilote PostgreSQL en premier? Classe.forname ("org.postgresql.driver");
@Worthless qui n'a pas été nécessaire depuis des années.
J'ai essayé. ne marche pas
Très probablement, le pot de conducteur n'est pas inclus pour une raison quelconque. Générez une guerre et vérifiez si le pot est inclus dans les bibliothèques.
Est-ce que cela répond à votre question? The Unfamous java.sql.sqxception: pas de pilote approprié trouvé a>
Est
app code> un schéma ou une base de données? Et si c'est vraiment un schéma, alors pourquoi ne fournissez-vous pas un nom de base de données dans l'URL?
@A_HORSE_WITH_NO_NAME C'est si gentil de la sorte de mySQL de le rendre "plus facile" en traitant des bases de données et des schémas comme la même chose.
@Kayaman Selon le contexte, le chargement explicite du conducteur peut toujours être nécessaire (par exemple, si le conducteur est en guerre, et non sur la classe initiale).
Vous ne devriez pas utiliser
drivermanager.geconnection code> au démarrage de printemps, mais utilisez plutôt une source de données. Voir Comment -Pour Guide: Accès aux données
@Markrotteveel Ah, c'est un bon point (Re: Classloaders).