Was ist falsch mit dem Code gibt es viele Fehler beim Debuggen. Ich schreibe einen Code für eine Singleton-Klasse, um eine Verbindung mit der Datenbank mysql herzustellen.
Hier ist mein Code
package com.glomindz.mercuri.util;
import java.sql.Connection;
import java.sql.Driver;
import java.sql.DriverManager;
import java.sql.SQLException;
public class MySingleTon {
String url = "jdbc:mysql://localhost:3306/";
String dbName = "test";
String driver = "com.mysql.jdbc.Driver";
String userName = "root";
String password = "";
private static MySingleTon myObj;
private Connection Con ;
private MySingleTon() {
System.out.println("Hello");
Con= createConnection();
}
@SuppressWarnings("rawtypes")
public Connection createConnection() {
Connection connection = null;
try {
// Load the JDBC driver
Class driver_class = Class.forName(driver);
Driver driver = (Driver) driver_class.newInstance();
DriverManager.registerDriver(driver);
connection = DriverManager.getConnection(url + dbName);
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InstantiationException e) {
e.printStackTrace();
}
return connection;
}
/**
* Create a static method to get instance.
*/
public static MySingleTon getInstance() {
if (myObj == null) {
myObj = new MySingleTon();
}
return myObj;
}
public static void main(String a[]) {
MySingleTon st = MySingleTon.getInstance();
}
}
Ich bin neu in Java. Bitte helfen Sie.
java
jdbc
mysql-connector
Atikul Hussain
quelle
quelle
Antworten:
Es scheint, dass die MySQL-Konnektivitätsbibliothek nicht im Projekt enthalten ist. Lösen Sie das Problem nach einer der vorgeschlagenen Lösungen:
Fügen Sie der Projektdatei pom.xml die Abhängigkeit mysql-connector hinzu:
Hier sind alle Versionen: https://mvnrepository.com/artifact/mysql/mysql-connector-java
Fügen Sie die JAR-Bibliothek manuell zum Projekt hinzu.
Klicken Sie mit der rechten Maustaste auf das Projekt -> Erstellungspfad -> Erstellungspfad konfigurieren
In der
Libraries Tab
PresseAdd External Jar
undSelect
Ihrem Glas.Den Zip für MySQL-Connector finden Sie hier
Beim Erstellen des Projekts löst Java eine Ausnahme aus, da eine Datei (die Klasse com.mysql.jdbc.Driver) aus der MySQL-Konnektivitätsbibliothek nicht gefunden wird. Die Lösung besteht darin, die Bibliothek zum Projekt hinzuzufügen, und Java findet den com.mysql.jdbc.Driver
quelle
mysql-connector-java-8.0.15.jar
Datei in denapache-tomcat-9.0.16\lib
Ordner einfügen, wie von @Asad vorgeschlagen.Wenn Sie den Fehler in Ihrer IDE (Kompilierungsfehler) erhalten haben, müssen Sie Ihre MySQL-Connector-JAR-Datei zu Ihren Bibliotheken hinzufügen und diese auch zu Ihrer referenzierten Projektbibliothek hinzufügen.
Wenn Sie diesen Fehler beim Ausführen erhalten, liegt dies wahrscheinlich daran, dass Sie die MySQL-Connector-JAR-Datei nicht in den lib-Ordner Ihres Webservers aufgenommen haben.
Fügen Sie
mysql-connector-java-5.1.25-bin.jar
Ihrem Klassenpfad und auch dem lib-Verzeichnis Ihres Webservers hinzu. Der Tomcat-Lib-Pfad wird als Beispiel angegebenTomcat 6.0\lib
quelle
Für Gradle- basierte Projekte benötigen Sie eine Abhängigkeit von MySQL Java Connector :
quelle
runtime 'mysql:mysql-connector-java:6.0.+'
.Sie müssen die Treiber-JAR für MySQL MySQL Connector Jar in Ihren Klassenpfad aufnehmen.
Wenn Sie Eclipse verwenden: So fügen Sie abhängige Bibliotheken in Eclipse hinzu
Wenn Sie die Befehlszeile verwenden, geben Sie den Pfad zum Treiber-JAR mit dem Parameter -cp von Java an.
quelle
-cp
gibt den Fehler der Hauptklasse nicht finden oder laden. Muss ich die Hauptklasse in einen anderen Ordner verschieben?Suchen
(mysql-connector-java-bin)
Sie hier in Ihrem Klassenpfad nach Glasquelle
Jeder hat eine Antwort geschrieben, aber ich bin immer noch überrascht, dass niemand sie tatsächlich auf die einfachste Weise beantwortet hat.
Die Leute antworten, die die JAR-Datei enthalten. Der Fehler tritt jedoch weiterhin auf.
Die Leute hier haben so oft geantwortet, dass diese JAR-Datei in den lib-Ordner von WEB-INF gestellt wurde. Das scheint in Ordnung zu sein, aber warum manuell? Es gibt einen einfachen Weg. Überprüfen Sie die folgenden Schritte:
Dies wird das Problem jedoch immer noch nicht lösen, da das Hinzufügen der externen JAR-Datei über den Erstellungspfad nur beim Kompilieren der Klassen hilft und die JAR-Datei nicht bereitgestellt wird, wenn Sie das Projekt ausführen. Folgen Sie dazu diesem Schritt
quelle
Die JDBC-API besteht hauptsächlich aus Schnittstellen, die unabhängig von einer Datenbank funktionieren. Für jede Datenbank, die die JDBC-API implementiert, ist ein datenbankspezifischer Treiber erforderlich.
Laden Sie zuerst das MySQL-Connector-JAR von www.mysql.com herunter und dann:
Right Click the project -- > build path -- > configure build path
Drücken
Add External Jar
Sie auf der Registerkarte Bibliotheken und wählen Sie Ihr Glas aus.quelle
Für Maven-basierte Projekte benötigen Sie eine Abhängigkeit.
quelle
Im Projekt in den Ordner Bibliotheken -> Rechtsklick -> Bibliothek hinzufügen -> Mysqlconnector 5.1
quelle
Der Treiberconnector befindet sich nicht in Ihrem Erstellungspfad. Konfigurieren Sie den Erstellungspfad und zeigen Sie auf die Datei 'mysql-connector-java-5.1.25-bin.jar' (überprüfen Sie die von Ihnen verwendete Version). Alternativ können Sie maven verwenden: D.
quelle
Trivial, wie es in meinem Fall scheinen mag, war NetBeans Version Maven Project 7.2.1 anders. Im Projekt gibt es einen Ordner namens Abhängigkeiten. Klicken Sie mit der rechten Maustaste und es öffnet sich ein Popup-Fenster, in dem Sie nach Paketen suchen können. In den Abfragebereich setzen
Es werden die Übereinstimmungen angezeigt (es scheint, dass dies gegen ein Repository erfolgt). Doppelklicken und dann installieren.
quelle
Dies liegt daran, dass der Ordner WEB-INF im Fehler nicht an der Stelle im Unterverzeichnis vorhanden ist. Sie kompilieren die Anwendung entweder so, dass sie den Ordner WEB-INF unter public_html verwendet, oder Sie kopieren den Ordner WEB-INF in den Unterordner wie im obigen Fehler.
quelle
Wechseln Sie für IntelliJ Idea zu Ihrer Projektstruktur (Datei, Projektstruktur) und fügen Sie die JAR-Datei des MySQL-Connectors zu Ihrer globalen Bibliothek hinzu. Klicken Sie dort mit der rechten Maustaste darauf und wählen Sie "Zu Modulen hinzufügen". Klicken Sie auf Übernehmen / OK und Sie sollten bereit sein.
quelle
Die Ausnahme kann auch auftreten, weil der Klassenpfad nicht definiert ist.
Nach stundenlanger Recherche und buchstäblichem Durchblättern von Hunderten von Seiten bestand das Problem darin, dass der Klassenpfad der Bibliothek nicht definiert wurde.
Stellen Sie den Klassenpfad auf Ihrem Windows-Computer wie folgt ein
quelle
Ich habe Ihr Problem verstanden. Fügen Sie diese Abhängigkeit in Ihre pom.xml ein. Ihr Problem wird gelöst.
https://mvnrepository.com/artifact/mysql/mysql-connector-java/5.1.38
quelle
Wenn Sie tomcat verwenden, sollten Sie zusammen mit dem Projektverzeichnis auch die JAR-Datei des Datenbankconnectors nach tomcat / lib kopieren. das hat bei mir funktioniert
quelle
Dies muss ab 2020 genutzt werden
quelle
Ich entwickle eine einfache JavaFX11-Anwendung mit SQLite-Datenbank in Eclipse IDE . Um einen Bericht zu erstellen, habe ich Jasper-Gläser hinzugefügt. Plötzlich wird "DIESER" Fehler ausgegeben .
Es lief gut (VOR DIESER ERGÄNZUNG). Aber plötzlich!
Ich verwende keine Maven oder andere Manager für diese einfache Anwendung. Ich füge Gläser manuell hinzu.
Ich habe "Benutzerbibliothek" erstellt und meine Gläser aus externen Ordnern hinzugefügt.
PROBLEMBEREICH: Meine "Benutzerbibliothek" ist als Systembibliothek markiert. Ich habe gerade die Markierung entfernt. Jetzt ist es keine Systembibliothek. "JETZT FUNKTIONIERT MEIN PROJEKT GUT".
DEBUG MYSELF: Versuchte andere Dinge: AT RUN CONFIGURATION: Versuchen Sie, Bibliothek zu entfernen und Gläser einzeln hinzuzufügen und zu sehen. - hier müssen Sie alle Gläser einzeln löschen, es gibt keine Auswahl aller und entfernen Sie in Eclipse gerade in der Ausführungskonfiguration. Die Fehlermeldungen ändern sich also von einem Glas zum anderen.
Hoffe das hilft jemandem.
quelle