Ich möchte eine Verbindung zwischen MySQL und meiner Java-Anwendung erhalten. Wenn ich das Programm ausführen, erhalte ich diesen Fehler: meine Protokollierungsinformationen sind wahr. Dies ist ein Projekt, in dem ich Kundeninformationen in meiner lokalen Datenbank hinzufügen, einfügen, löschen und aktualisieren kann.Verbinden mit SQL_Datenbank mit Java
java.lang.ClassNotFoundException: com/mysql/jdbc/Driver.class
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:264)
at sample.Database.Connection.getConnection(Connection.java:26)
at sample.Presentation.Controller.<init>(Controller.java:19)
at sample.Presentation.Main.start(Main.java:13)
at com.sun.javafx.application.LauncherImpl.lambda$launchApplication1$162(LauncherImpl.java:863)
at com.sun.javafx.application.PlatformImpl.lambda$runAndWait$175(PlatformImpl.java:326)
at com.sun.javafx.application.PlatformImpl.lambda$null$173(PlatformImpl.java:295)
at java.security.AccessController.doPrivileged(Native Method)
at com.sun.javafx.application.PlatformImpl.lambda$runLater$174(PlatformImpl.java:294)
at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:95)
at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
at com.sun.glass.ui.win.WinApplication.lambda$null$148(WinApplication.java:191)
at java.lang.Thread.run(Thread.java:745)
-Code
public class Controller {
public Controller(Stage primaryStage) {
ButtonPane buttonPane = new ButtonPane();
AddPane addPane = new AddPane();
VBox vBoxStart = new VBox();
Connection connection = new Connection();
try {
connection = connection.getConnection();
}catch (Exception e){
System.out.println("No connection");
}
Querys querys = new Querys();
HBox hBoxOption = new HBox(buttonPane.ButtonPane(),addPane.getPane());// Menu and add/update/delete
HBox hBoxView = new HBox(); // Calender/tableView
vBoxStart.getChildren().addAll(hBoxOption,hBoxView);
Scene scene = new Scene(vBoxStart,1000,1000);
primaryStage.setScene(scene);
primaryStage.show();
Connection finalConnection = connection;
addPane.getButtonAddCustomer().setOnAction(event ->{
querys.viewTable(finalConnection,"customer");
});
}
}
public class Connection {
String userName = "root";
String password = "rasmus12";
String dbms = "mysql";
String serverName = "localhost";
String portNumber = "3306";
public Connection getConnection() {
Connection conn = null;
try {
Class.forName("com/mysql/jdbc/Driver.class");
conn = (Connection) DriverManager.getConnection(
"jdbc:" + this.dbms + "://" +
this.serverName +
":" + this.portNumber + "/",
this.userName,this.password);
System.out.println("Connected to database");
} catch (SQLException e) {
System.out.println("SQL Exception in connection");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
return conn;
}
}
public class Querys {
public void viewTable(Connection con, String dbName) {
Statement stmt = null;
String query = "select * " +
"from " + dbName;
try {
ResultSet rs = stmt.executeQuery(query);
while (rs.next()) {
int id = rs.getInt("person_id");
String firstName = rs.getString("person_first_name");
String lastName = rs.getString("person_last_name");
String adresse = rs.getString("person_adresse");
String zip = rs.getString("person_zip");
String city = rs.getString("person_city");
int mobilePhone = rs.getInt("person_mobile_phone");
int phone = rs.getInt("person_phone");
int driverLicenceNumber = rs.getInt("person_driver_licence_number");
String driverSinceDate = rs.getString("person_driver_since_date");
String registrationNumber = rs.getString("person_registration_number");
int orderId = rs.getInt("order_id");
System.out.println(id + "\t" + firstName +
"\t" + lastName + "\t" + adresse +
"\t" + zip +
"\t" + city +
"\t" + mobilePhone +
"\t" + phone +
"\t" + driverLicenceNumber +
"\t" + driverSinceDate +
"\t" + registrationNumber+
"\t" + orderId);
}
} catch (SQLException e) {
System.out.println("SQL Exception");
} finally {
if (stmt != null) {
try {
stmt.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
}
Ich habe das IntelliJ-Tag entfernt, da es sich bei Ihrer Frage nicht um IntelliJ handelt. Dass Sie IntelliJ verwenden, um Ihr Programm zu entwickeln, hängt nicht mit diesem Problem zusammen. Wenn diese Frage durch einen Tippfehler/falschen Klassennamen verursacht wird (siehe [Antwort von YCF_L] (http://Stackoverflow.com/a/43784715/466862)), habe ich beschlossen, Ihre Frage zu dem kanonischen Duplikat zu schließen, um die Verbindung herzustellen MySQL von Java. –