MySQL Verbindung aufbauen

soa

Erfahrenes Mitglied
Hallo zusammen,

puh, es scheint mir nicht ganz so einfach zu sein, eine DB in Java einzubinden.

Ich habe mir einen Treiber von der MySQL Site gezogen: mysql-connector-java-5.0.5-bin.jar
Diesen im Clathpath unter Windows XP eingebunden.
MySQL läuft bei mir über den Port 3306.

Ich arbeite mit Eclipse SDK in der Version: 3.2.2.

Hier habe ich mir nun eine Testklasse geschrieben, die ich nachstehend einstelle:


PHP:
import java.sql.Connection;
	import java.sql.DriverManager;
	import java.sql.SQLException;
	import java.io.PrintWriter;
	import java.sql.*;
	
	public class guiTest {
		

		static Statement stmt = null;
		static ResultSet rs = null;	
		
		
	
public static void main (String[] args){
	
	try {
	Connection conn =
	DriverManager.getConnection("jdbc:mysql://localhost/datenbankname?" +
	"user=root&password=");
	
	
	    stmt = conn.createStatement();
	    rs = stmt.executeQuery("SELECT * FROM motive");

	    if (rs != null) {
	    	System.out.println("Datenbankabruf erfolgreich durchgeführt!");
	    }
	    else
	    {
	    	System.out.println("Datenbankabruf fehlgeschlagen!");
	    }

	
	DriverManager.setLogWriter( new PrintWriter(System.out) );
//	 Do something with the Connection
	
	} catch (SQLException ex) {
//	 handle any errors
	System.out.println("SQLException: " + ex.getMessage());
	System.out.println("SQLState: " + ex.getSQLState());
	System.out.println("VendorError: " + ex.getErrorCode());
	
	
	}
	finally {
		   
	    if (rs != null) {
	        try {
	            rs.close();
	        } catch (SQLException sqlEx) { // ignore }

	        rs = null;
	    }

	    if (stmt != null) {
	        try {
	            stmt.close();
	        } catch (SQLException sqlEx) { // ignore }

	        stmt = null;
	    }
	    }
	  }  
	        
	    }//finally	
		
	}//main
	
}// end of class

Leider bekomme ich nicht die geringste Ausgabe .Nicht einmal eine Fehlermeldung.
Die Klasse wird kompiliert.

Die Log von eclipse sagt Folgendes:

!ENTRY org.eclipse.jdt.debug.ui 4 150 2007-07-25 21:17:56.481
!MESSAGE Internal Error
!STACK 1
org.eclipse.debug.core.DebugException: Invalid stack frame
at org.eclipse.jdt.internal.debug.core.model.JDIStackFrame.getUnderlyingStackFrame(JDIStackFrame.java:1003)
at org.eclipse.jdt.internal.debug.core.model.JDIStackFrame.getUnderlyingVisibleVariables(JDIStackFrame.java:681)
at
usw..

Ich wäre über Hinweise sehr dankbar.


Vielen Dank.
 
Hi Du must erst noch die Klasse laden, bevor Du den DriverManager bemühst
Java:
Class.forName("com.mysql.jdbc.Driver").newInstance();
conn = DriverManager.getConnection(url, user, pass);
System.out.println("Verbunden");

Gruss
 
Hallo,

mit deiner Fehlerausgabe kann ich nicht viel anfangen, hab kein Eclipse. Die DebugException heißt aber wohl, dass Eclipse bzw. der Debugger Probleme mit der Java VM hat, also liegt das nicht an der Datenbank.
Auf jeden Fall musst du aber vorher die Klasse des SQL-Treibers laden, das geht bei deinem z.B. mit
Code:
static {
   Class.forName("com.mysql.jdbc.Driver");
}
ansonsten findet der DriverManager nämlich keinen passenden Treiber für die URL.
 
Alles klar, habe es über

PHP:
try 
	    { 
		  
			   Class.forName("com.mysql.jdbc.Driver");
			
	    } 
	    catch ( ClassNotFoundException e ) 
	    { 
	      System.err.println( "Treiber Error!" ); 
	      return; 
	    }

hinbekommen.

Allerdings läßt sich die Klasse nur über die Konsole ausführen.

Wenn ich die Klasse in Eclipse ausführe, passiert nichts. Fange gerade erst an mit
Eclipse zu arbeiten. Woran könnte es liegen, dass das Programm in Eclipse nicht läuft ?

VG
 
Also wenn du den DB Treiber unter der für eclipse verantwortlichen jre im Verzeichnis lib/ext als *.jar gespeichert hast, sollte es problemlos laufen.
 
Zurück