JDBC Verbindung

2fast4you87

Erfahrenes Mitglied
Hallo Leute,

bin irgendwie am verzweifeln. Habe bei google und auch hier oft gesucht und mehrfahr rumgetrixt, komme aber leider zu keiner Lösung.
Habe Mysql 5.0 und den JDBC Treiber von Mysql (einmal den 3er und auch schon mit dem 5er ausprobiert). Den Treiber habe ich meiner Meinung nach Ordnungsmäßig installiert, trotzdem klappt die Verbindung nicht.

Hier mal der Code

Code:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;


public class mysql 
{
    public static void main(String[] args) 
    {
    	
     Connection con = null;
     String dbserver = "127.0.0.1"; 		//Host der Datenbank
     String db = "ajax"; 		            //Name der Datenbank
     String dbuser = "root";				//Name des Datenbank-Users
     String dbpwd = "";		         		//Passwort des Datenbank-Benutzers
    	
        try //treiber laden
        {
         Class.forName("com.mysql.jdbc.Driver").newInstance();
         con = DriverManager.getConnection("jdbc:mysql://"+ dbserver + "/" + db,dbuser,dbpwd);
        } 
        catch (Exception ex) 
        {
		 System.err.println("Kann nicht verbinden!");
        }
        

	}
}

Und hier mal die Fehlermeldung in der Shell,

Exception in thread "main" java.lang.NoClassDefFoundError: java/sql/Savepoint
at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java
:266)
at java.sql.DriverManager.getConnection(DriverManager.java:512)
at java.sql.DriverManager.getConnection(DriverManager.java:172)
at mysql.main(mysql.java:20)
 
Hi!

Den Treiber habe ich meiner Meinung nach Ordnungsmäßig installiert,[...]

Wie hast Du den Treiber denn "installiert".

Code:
java.lang.NoClassDefFoundError
klingt meiner Meinung danach, dass du den Treiber nicht in deinen Classpath aufgenommen hast.

MfG
Daniel
 
Hallo,

in den Systemvariablen:
CLASSPATH

C:\mysql-connector-java-3.1.14\mysql-connector-java-3.1.14\mysql-connector-java-3.1.14-bin.jar
 
hm,
Also wenn ich deinen Quellcode bei mir mit dem 5.0.4er Treiber (unter Eclipse) teste bekomme ich:
Code:
com.mysql.jdbc.CommunicationsException: Communications link failure due to underlying exception: 

** BEGIN NESTED EXCEPTION ** 

java.net.SocketException
MESSAGE: java.net.ConnectException: Connection refused: connect


Verständlich, wenn man keine MySQL Datenbank laufen hat, dann kann er da auch nicht drauf verbinden.
Du könntest mal versuchen deine Datenbank so anzusprechen. DataSource mag ich mittlerweile eh lieber als das Gefummel mit den Connection Strings;)

MfG
Daniel
 
Oh man, ganz ehrlich wollte es gerne mit meinem Quellcode machen. Was kann es denn noch sein?
In der Path stehen die Einträge für Java (lib und bin).
In der Classpath der pfad zur jar.

Habe den Mysql am laufen!

Nur woran kann es dann liegen?
 
Was er nicht findet ist die Klasse java.sql.Savepoint, also eine Klasse aus der Java Installation die von MySQL Treiber nicht gefunden wird. Also ist in dem Bereich im Path vielleicht irgendwas falsch oder du hast noch ein Java 1.3.x (was ich mal nicht annehme).
 
Also, in der Path stimmte was nicht. Jetzt bekomme ich nur keine Verbindung hin.
hier mal der Code
Code:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;


public class mysql 
{
    public static void main(String[] args) 
    {
    	
     Connection con = null;
   	
        try //treiber laden
        {
         Class.forName("com.mysql.jdbc.Driver").newInstance();
         con = DriverManager.getConnection("jdbc:mysql://localhost/ajax?user=root&password=123");

        } 
        catch (Exception ex) 
        {
		 System.err.println("Kann nicht verbinden!"+ex);
        }
   
	}
}

Und Ja, der Mysql ist an.
Achja hier mal der Fehler Code.
Kann nicht verbinden!com.mysql.jdbc.CommunicationsException: Communications link
failure due to underlying exception:

** BEGIN NESTED EXCEPTION **

java.net.UnknownHostException
MESSAGE: localhost: localhost

STACKTRACE:

java.net.UnknownHostException: localhost: localhost
at java.net.InetAddress.getAllByName0(InetAddress.java:1128)
at java.net.InetAddress.getAllByName0(InetAddress.java:1098)
at java.net.InetAddress.getAllByName(InetAddress.java:1061)
at com.mysql.jdbc.StandardSocketFactory.connect(StandardSocketFactory.ja
va:137)
at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:284)
at com.mysql.jdbc.Connection.createNewIO(Connection.java:2569)
at com.mysql.jdbc.Connection.<init>(Connection.java:1485)
at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java
:266)
at java.sql.DriverManager.getConnection(DriverManager.java:525)
at java.sql.DriverManager.getConnection(DriverManager.java:193)
at mysql.main(mysql.java:16)


** END NESTED EXCEPTION **
 
Er scheint localhost nicht auflösen zu können. Versuch doch mal 127.0.0.1 und häng in jedem Fall den Port an (meist 3306), also: jdbc:mysql://127.0.0.1:3306/ajax?user=root&password=123
 
Hallo,

habe das wie folgt geändert. Funktioniert aber trotzdem nicht!
Code:
con = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/ajax?user=root&password=123");

Habe den connect auch auf einen anderen mysql server durchgeführt, der selbe fehler.
 
Zuletzt bearbeitet:
darf der Benutzer sich von localhost aus verbinden oder von extern verbinden. Hat der User die richtigen Berechtigungen in der Datenbank. Haste mal versucht mit MysqlAdmin versucht ne Vebindung mit dem Benutzer aufzubauen?
 
Zurück