# Verbingungsaufbau zur Datenbank klappt nicht



## Grim (31. Jul 2007)

hier erstmal der quellcode



```
import java.sql.*;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class MeineErsteAbfrage {


public static void main(String args[]){

    System.out.println("1");
 try{
     System.out.println("2");
  Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
    System.out.println("3");}
        
 catch ( ClassNotFoundException e ) 
  {
      System.out.println("4");
  e.printStackTrace();
  System.exit(1);
  }
      System.out.println("5");
 try{
        System.out.println("6");   
  Connection con = DriverManager.getConnection("jdbc:mysql://127.0.0.1/test","root","");
        System.out.println("7");
  Statement stmt = con.createStatement();
        System.out.println("8");
  ResultSet rs = stmt.executeQuery(
                         "SELECT Name, Nick FROM hfn_fahrer"
                         );
        System.out.println("9");                       
 while ( rs.next() )
    {
     System.out.println("Name" +rs.getString(1));
     System.out.println("Nick" +rs.getString(2));
    }
    stmt.close();
    con.close();
  }
 catch ( SQLException e){
     e.printStackTrace();
           System.out.println("10");
     return;
    }
  }
}
```


leider funktioniert es nicht.
die Ausgabe sieht folgendermaßen aus:
1
2
3
5
6
10

kann mir jemand sagen, was ich falsch gemacht habe?


----------



## P3AC3MAK3R (31. Jul 2007)

Welche Ausgabe liefert der Aufruf


```
e.printStackTrace();
```

?


----------



## Grim (31. Jul 2007)

gar keine, denke ich...
die komplette ausgabe bestand nur aus den vorhin erwähnten zahlen


----------



## SlaterB (31. Jul 2007)

System.out.println("10"); 
->
System.out.println("10, "+e.getClass().getName()+", "+e.getMessage());


----------



## Grim (31. Jul 2007)

danach sieht die ausgabe folgendermaßen aus

1
2
3
5
6
10, java.sql.SQLException, No suitable driver


----------



## SlaterB (31. Jul 2007)

hast du denn einen Treiber als jar und ordentlich im Classpath eingebunden?


oder braucht man den gar nicht bei dieser Version?
oft liest man ja eher
Class.forName ("com.mysql.jdbc.Driver");
als
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");


----------



## Grim (31. Jul 2007)

mein classpath ist :

CLASSPATH=.;C:\programme\Java\jre1.6.0_01\lib\ext\QTjava.zip


was muss ich genau eingeben um ihn zu ändern?

wenn ich anstatt
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

Class.forName ("com.mysql.jdbc.Driver");
nehme,

ist die ausgabe noch kürzer:

1
2
4


----------



## SlaterB (31. Jul 2007)

tja, was wie genau funktioniert, kann ich ich persönlich schlecht sagen, 
ich verwende das aktuell nicht,

würde sun.jdbc.odbc.JdbcOdbcDriver nicht gefunden werden,
hättest du auch nur die kurze Ausgabe, also klappt zumindest das,

aber der Treiber scheint nicht akzeptiert zu werden, versuche es also evtl. mit den MySQL-Treibern,
nach Tutorials bei google zu finden oder z.B.
http://www.torsten-horn.de/techdocs/java-sql.htm
http://www.torsten-horn.de/techdocs/java-sql.htm#MySQL

und lies am besten auch mal
http://www.galileocomputing.de/open...20_001.htm#mjefd48f234e14f3405450e33c88f467af

wenn du aber nicht mal eine ErrorLog-Ausgabe hast, wird es ganz schwer, Programme jeglicher Art zu entwickeln,

und wenn du nicht selber erkennst, dass diese Ausgabe feht und du manuell e.getMessage() ausgeben kannst/ musst,
dann sehe ich ganz schwarz dafür, dass du sowas kompiliziertes zum laufen bringst,

das ist aber nur meine pessimistische persönliche Meinung


----------



## Kim Stebel (31. Jul 2007)

Lade dir MySQL connectorJ(google is your friend..) runter und binde ihn in den classpath ein. Dann lade com.mysql.jdbc.Driver.


----------



## Grim (31. Jul 2007)

danke für die vielen antworten
es klappt jetzt


----------

