Ich habe ein Verbindungsproblem zu meiner localen Datenbank. Der Versuch eine Java Klasse zu schreiben und auf eine MySql Datenbnak zu connecten funktioniert immer nicht. Hatte anfangs mit der H2 Mem Datenbank gearbeitet, da hatte ich bereits Fehler beim connecten. Jedoch wollte ich mit der H2 Mem nur testen wie die Funktionsweise ist. Nun wollte ich dies in MySql umsetzten und scheitere erbärmlich ..
#Java Class
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 | package db; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.Statement; public class Database { public static boolean createConnection() throws Exception{ try { //Datenbanktreiber laden //Obtional seit JDBC 4 //Class.forName("org.") System.out.println("Treiber Laden"); //Datenbankverbindung herstellen //old Treiber Class.forName("com.mysql.jdbc.Driver"); Class.forName("com.mysql.cj.jdbc.Driver"); final String dbUrl = "jdbc:mysql:///localhost/Java2DB"; System.out.println("After Connection"); final String dbUser = "andy"; final String dbPw = "pw"; Connection conn = null; Statement stmt = null; ResultSet rstmt = null; System.out.println("Bevor open Connection"); //Verbindung öffnen conn = DriverManager.getConnection(dbUrl,dbUser,dbPw); System.out.println("After Connection"); //Sql Befehlsobject erstellen stmt = conn.createStatement(); System.out.println("Bevor auslesen"); //Sql abfrage ausführen rstmt = stmt.executeQuery("SELECT * FROM Austeller"); int[] sqlList = new int[4]; System.out.println("Nach auslesen"); sqlList[0] = rstmt.getInt("ID"); sqlList[1] = rstmt.getInt("usageHalle"); sqlList[2] = rstmt.getInt("period"); sqlList[3] = rstmt.getInt("modelle"); System.out.println(sqlList[0] + " " + sqlList[1] + " " + sqlList[3] + " " + sqlList[4] ); return true; } catch (Exception e){ return false; } } } |
#Shell ausgabe
1 2 3 4 5 6 7 8 9 10 11 | mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | Java2DB | | mydb | | mysql | | performance_schema | | sys | +--------------------+ |
#Fehler Konsolenausgabe
Keinen, sondern nur die Test Ausgaben
1 2 3 | > Treiber Laden > After Connection > Bevor open Connection |
Ich benutze IntelliJ Ultimate , und wen ich darüber eine Datenbank einfügen will (mysql) und eine TestConnection ausführe, schlägt dies immer fehl. Ich benutze auserdem Maven und habe die dependency hinzzugefügt für MySql Connector.
<dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.16</version> </dependency>
für hilfreiche Antworten bin ich Dankbar ☺