# Keine Connection zur MySQL Db



## Jörn (20. Apr 2006)

Hallo,

ich versuche gerade ein einfaches Applet zu schreiben, welches mir aus einer vorhandenen Tabelle alles rauslöscht. Allerdings macht mir Eclipse einen Strich durch die Rechnung.

Folgender Code: 

```
package sql;

import java.applet.*;
import java.sql.*;
import java.io.*;



public class Db_connect extends Applet {

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;

	public static void main( String args[] )
	//Datenbanktreiber laden  
	{
	    try {
	   
	      DriverManager.setLogWriter( new PrintWriter(System.out) );
	      Class.forName("com.mysql.jdbc.Driver");
	      System.out.println("Treiber erfolgreich geladen");
	    }
	    catch ( ClassNotFoundException e ) {
	      System.out.println( "Fehler bei der JDBC-MySQL Verbindung" + e );
	      return;
	    }
	    Connection conn;
	    Statement stmt = null;
	    
	  	    try
	    {
	  	    	
	  	    	System.out.println("Verbindung erfolgreich");
	  	    	//Verbindung aufbauen
	    String user = "swt05644";
	    String pass = "reckreck";
	      conn = DriverManager.getConnection( "jdbc:mysql://localhost/swt05644", user, pass);
	      
	     
	    int del = stmt.executeUpdate("DELETE FROM 'persons");
	      stmt.close();
	      conn.close();
	    }
	    catch ( SQLException e )
	    {
	      System.out.println( "Fehler bei Tabellenabfrage" + e );
	      return;
	    }
	    
	  }
}
```
Folgende Probleme:

1. Eclipse gibt folgende Meldung aus : Fehler bei der JDBC-MySQL Verbindungjava.lang.ClassNotFoundException: com.mysql.jdbc.Driver

2. Ich bekomme keinerlei Anzeige von Fehlermeldungen, wenn ich das Applet hochlade auf meinen Server. Das Applet wird korrekt gestartet aber das wars auch schon.

Bin ein wenig ratlos[/code]


----------



## Fretful (20. Apr 2006)

Hast du auch den Treiber dazugebunden zum Projekt ?
Blockt deine Firewall eh nicht die Zugriffe ?
Bist du dir sicher das der JDBC Treiber auch mit der MySQL Version kompatibel ist?

ich sags dir da gibts MIONEN Fehlerquellen 
 :meld:


----------



## Guest (20. Apr 2006)

Fretful hat gesagt.:
			
		

> Hast du auch den Treiber dazugebunden zum Projekt ?
> Blockt deine Firewall eh nicht die Zugriffe ?
> Bist du dir sicher das der JDBC Treiber auch mit der MySQL Version kompatibel ist?
> 
> ...



Juhuu.. :autsch: 

Die Datenbank liegt nicht auf meinem Rechner sondern auf einem Server auf dem auch die class Datei liegt und die html Datei.

Wie binde ich den Treiber zum Projekt ? Mit meinen Java Kenntnissen ist es nicht weit her, daher dachte ich es reicht, wenn man im Quellcode den Treiber lädt.

Wieso sollte meine Firewall die Zugriffe blocken ?

Ich habe MySQL bei Funpic.de  der JDBC Treiber... ähm ja keine Ahnung ehrlich gesagt


----------



## Fretful (20. Apr 2006)

Okay, da deine Applikation eine ist die am Webserver oder so läuft, kannste das mit der Firewall vergessen . sondern musst nur darauf achten das dein programm auch auf den Treiber der ja hoffentlich auch am server liegt zugreifen darfst. schau mal bei google da findest du sicher x tutorial dazu ^^


----------



## Caffè Latte (20. Apr 2006)

Hi,

also du erstellst ein Applet. Das läuft dann auf dem Client. Ist denn über das Internet eine Verbindung zum DB-Server möglich? DIe meisten Provider unterbinden das.

Wie hast du denn den MySQL JDBC-Treiber in dein Projekt eingebunden? Wenn du den JConnector (oder wie immer das ding heisst) downloadest, dann ist darin das jar-File (mysql-connector-java-3.x.x-bin.jar). Das muss in einem Verzeichnis liegen im Classpath.


----------



## Jörn (20. Apr 2006)

Ich hab den SQL Server bei funpic.de... vielleicht weiß jemand Genaueres wegen der Verbindung über Internet.

Soweit ich die Sache mit den Applets verstanden habe, werden die vom Client heruntergeladen und dann im Browser ausgeführt. Also muss es ja auch möglich sein in einem Applet auf eine Datenbank zuzugreifen oder muss man wirklich mit Servlets arbeiten , also JSP ?

Zum Treiber: 

Ich habe mir die genannte Datei runtergeladen und den Ordner von Eclipse kopiert der "Plugins" heißt. Scheint wohl nicht der richtige zu sein. 
Soll der Treiber, wenn ich das richtig deute in das Verzeichnis, in dem sich auch die class Dateien befinden von meinem Projekt ?


----------



## Jörn (20. Apr 2006)

Habe jetzt die Datenbank gewechselt. 
Die Datenbank liegt nun direkt bei der Uni und es kann von außen auf sie zugegriffen werden, also auch über ein Applet. Trotzdem habe ich folgende Fehlermeldung:

"DriverManager.initialize: jdbc.drivers = null
JDBC DriverManager initialized
registerDriver: driver[className=com.mysql.jdbc.Driver,com.mysql.jdbc.Driver@e83912]
Treiber erfolgreich geladen
Verbindung erfolgreich
DriverManager.getConnection("jdbc:mysql://139.30.3.237/0564Pawfs")
    trying driver[className=com.mysql.jdbc.Driver,com.mysql.jdbc.Driver@e83912]
getConnection returning driver[className=com.mysql.jdbc.Driver,com.mysql.jdbc.Driver@e83912]
Exception in thread "main" java.lang.NullPointerException
	at db_connect.main(db_connect.java:42)
"


Der Quelltext sieht nun wie folgt aus 


```
import java.applet.*;
	import java.sql.*;
	import java.io.*;



	public class db_connect extends Applet{

	   /**
	    *
	    */
	   private static final long serialVersionUID = 1L;

	   public static void main( String args[] )
	   //Datenbanktreiber laden 
	   {
	       try {
	      
	         DriverManager.setLogWriter( new PrintWriter(System.out) );
	         Class.forName("com.mysql.jdbc.Driver");
	         System.out.println("Treiber erfolgreich geladen");
	       }
	       catch ( ClassNotFoundException e ) {
	         System.out.println( "Fehler bei der JDBC-MySQL Verbindung" + e );
	         return;
	       }
	       Connection conn;
	       Statement stmt = null;
	      
	            try
	       {
	               
	               System.out.println("Verbindung erfolgreich");
	               //Verbindung aufbauen
	       String user = "....";
	       String pass = ".....";
	         conn = DriverManager.getConnection( "jdbc:mysql://139.xxx.xxx.xxx/dbname", user, pass);
	        
	        
	       int del = stmt.executeUpdate("DELETE FROM persons ");
	         stmt.close();
	         conn.close();
	       }
	       catch ( SQLException e )
	       {
	         System.out.println( "Fehler bei Tabellenabfrage" + e );
	         return;
	       }
	      
	     }
	}
```

Es existiert die Tabelle "persons" und 2 Spalten mit dem namen und dem alter..
Es soll der komplette Eintrag gelöscht werden


----------

