Donc, j'essaie de copier une base de données distante dans ma base de données locale à l'aide de Intellij et MySQL, et j'ai déjà obtenu les données de la base de données distante. Le problème vient lorsque j'essaie d'établir une connexion avec MySQL:
public void copyDatabase(Info info){ try{ Class.forName("com.mysql.jdbc.Connection"); localConnection = DriverManager.getConnection("jdbc:mysql://localhost:3306/lsmotor_local_oltp", user, password); }catch(SQLException e){ System.out.println("Problem while trying to connect to local database"); } catch(ClassNotFoundException e){ System.out.println(e); } //TODO: Copy Info into local database }
4 Réponses :
Voir: https://www.w3resource.com/mysql/mysql -Java-Connection.php
Vous n'avez probablement pas inclus la bibliothèque de connecteur MySQL JDBC sur la classe de classe. Une fois que vous l'avez eu, vous devriez pouvoir exécuter le code comme celui de l'exemple. P>
Le problème est que j'ai utilisé le FORNAME ("COM.MYSQL.JDBC.DRIVER") CODE> Avant, et il a dit qu'il a été obsolète (j'utilise Java version 11.0.2): Classe de chargement
com.mysql.jdbc.Driver '. Ceci est obsolète. La nouvelle classe de pilotes est code> com.mysql.cj.jdbc.Driver '. Le pilote est automatiquement inscrit via la SPI et le chargement manuel de la classe de pilotes est généralement inutile. B> et lorsque je vérifie le fichier Fichier -> Structure du projet -> Modules Il affiche le connecteur MySQL avec la case vérifiée. Je vais essayer de le construire à nouveau au cas où. Merci pour votre réponse, peu importe!
Vous avez l'exception java.lang.classnotfoundException parce que la classe com.mysql.jdbc.connection n'existe pas. Si vous souhaitez vous connecter à votre base de données, vous pouvez utiliser ce tutoriel < / a> p>
Oh mon erreur là-bas, j'utilisais du pilote, mais puisqu'il continuait à montrer Chargement de classe com.mysql.jdbc.Driver '. Ceci est obsolète. La nouvelle classe de pilotes est code> com.mysql.cj.jdbc.Driver '. Le pilote est automatiquement enregistré via SPI et le chargement manuel de la classe de pilotes est généralement inutile. B> J'ai cessé de l'utiliser. En cas de dépréciation, qu'est-ce qui peut être utilisé à la place? Merci de votre réponse!
Le tuotrial que j'ai lié travaille avec le nouveau pilote 'com.mysql.cj.jdbc.Driver'. Il vous suffit de changer le nom de la classe de la méthode.
Oui ça a fonctionné merci beaucoup! Maintenant, il est dit quelque chose sur le Timezone du serveur sur la sqléxception, ce qui signifie que je dois probablement modifier l'heure du serveur de MySQL Server.
Vous pouvez modifier votre fuseau horaire du serveur ou vous pouvez ajouter ceci à l'URL de la base de données "? USETIMEZONE = TRUE & SERVERTTIMEZONE = {Votre fuseté} b>"
Vérifiez les paramètres / configuration dans votre fichier de propriétés ou quelque chose, lié au pilote MySQL JDBC P>
Mise à jour: j'ai découvert dans mon cas, j'ai besoin d'utiliser "com.mysql.cj.jdbc.Driver", mais maintenant le problème
Étant donné que vous avez déjà inclus la bibliothèque de pilotes MySQL JDBC requise, vous devez vérifier les paramètres de configuration appropriés. Veuillez vérifier les paramètres de votre version respective de votre base de données et pilote MySQL et assurez-vous qu'ils sont compatibles.