# Fehler beim Verbinden



## Gast (17. Nov 2006)

Guten Abend allerseits,
ich habe ein Problem, immer wenn ich versuche folgendes kleines Programm auszuführen. Bekomme ich eine Fehlermeldung an den Kopf geworfen (Die Exception wird jedoch auch ausgelöst).

So sieht die Fehlermeldung aus.


```
Verbindung kann nicht hergestellt werden.
java.lang.NullPointerException
	at JDBC_anbindung.main(JDBC_anbindung.java:31)
Exception in thread "main"
```

Auserdem kommt eine Nachricht:
Fatal Exception occured. Programm will exit.


Die DB liegt auf localhost. Und wurde über PHPMyAdmin erstellt. 

So sieht der Code aus:


```
import java.sql.*;

public class JDBC_anbindung {

	public static void main(String[] args){
		
		//Laden des Treibers
		try{
			Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
			
		}catch(ClassNotFoundException e){
			System.out.println("Kann den Treiber nicht finden.");
		}
		
		//Verbindungs-Objekt erzeugen und konfigurieren
		Connection con = null;
		
		String db = "jdbc:odbc:test";
		
		try{
			con = DriverManager.getConnection(db);
			
		}catch(SQLException e)
		{
			System.out.println("Verbindung kann nicht hergestellt werden.");
		}
		
		Statement state = null;
		
		try{
			state = con.createStatement();
			
		}catch(SQLException e){
			System.out.println("");
		}
		
		String sql = "SELECT * FROM namen OREDER BY Index;";
		
		try{
			
			ResultSet res = state.executeQuery(sql);
			
			while(res.next()){
				
				String vorname = res.getString("Vorname");
				String nachname = res.getString("Nachname");
				int Index = res.getInt("Index");
			
				System.out.println(vorname + " " + nachname + "hat folgenden Index: " + Index);
			}
			
		}catch(SQLException e)
		{
			System.out.println("Der Query ist fehlerhaft.");
		}
		
	}
	
}
```

Ich hoffe ihr könnt mir helfen.


----------



## Murray (17. Nov 2006)

1. DriverManager#getConnection wirft eine Exception, die du aber nicht ausgibst; stattdessen lässt du "Verbindung kann nicht hergestellt werden" auf die Konsole schreiben

2. In der Anweisung con.createStatement tritt dann eine NullPointerException auf, dei nicht abgefangen wird (an der Stelle werden nur SQLExceptions behandelt)


Versuch es mal so (wird auch nicht funktionieren, aber du siehst, was nicht klappt)

```
import java.sql.*;

public class JDBC_anbindung {

   public static void main(String[] args){
      
      //Laden des Treibers
      try{
         Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
      } catch(ClassNotFoundException e){
         System.out.println("Kann den Treiber nicht finden.");
		 System.exit( 0);
      }
      
      //Verbindungs-Objekt erzeugen und konfigurieren
      Connection con = null;
      
      String db = "jdbc:odbc:test";
      
      try {
         con = DriverManager.getConnection(db);
      } catch(SQLException e) {
         System.out.println("Verbindung kann nicht hergestellt werden (" + e + ").");
		 System.exit( 0);
      }
      
      Statement state = null;
      
      try {
         state = con.createStatement();
      } catch(SQLException e){
         System.out.println( "Statement kann nicht erzeugt werden (" + e + ").");
		 System.exit( 0);
      }
      
      String sql = "SELECT * FROM namen OREDER BY Index;";
      
      try{
         
         ResultSet res = state.executeQuery(sql);
         
         while(res.next()){
            
            String vorname = res.getString("Vorname");
            String nachname = res.getString("Nachname");
            int Index = res.getInt("Index");
         
            System.out.println(vorname + " " + nachname + "hat folgenden Index: " + Index);
         }
         
      } catch(SQLException e) {
         System.out.println( "Fehler beim Ausführen der Query \"" + sql + "\" (" + e + ").");
      }
      
   }
   
}
```


----------



## Gast (19. Nov 2006)

Danke schonmal, aber leider kann ich der Fehlermeldung nichts abgewinnen.



> [Microsoft][ODBC Driver Manager] Der Datenquellenname wurde nicht gefunden, und es wurde kein Standardtreiber angegeben).



Denn mit einer Access Tabelle hat das nämlich geklappt, also muss ich doch einen Treiber angegeben haben.


----------



## Gast (23. Nov 2006)

Keiner einen Rat?


----------



## robb (24. Nov 2006)

> [Microsoft][ODBC Driver Manager] Der Datenquellenname wurde nicht gefunden, und es wurde kein Standardtreiber angegeben).



Sieht für mich danach aus, dass du den falschen Treiber hast.


----------

