# Wie finde ich den Treiber?



## jean20 (26. Okt 2004)

Hallo leute,

ich versuche eine Verbindung zu einer Informix Datenbankt zu erstellen. Dazu möchte ich diese Methode nutzen:

DriverManager.getConnection(url, user, password);

Als url habe ich forgendes eingegeben:

private String url = "jdbc:informix-sqli://z5tt1067h:29167/test_e:informixserver=ifx_e707";

dieser Teil ist der Host und Datenbankname:  //z5tt1067h:29167/test_e

Was ist davon der Treiber?

Wo finde ich den Treiber? Ist er nicht schon in java mitdabei?

Ich bekomme so eine Fehlermeldung

java.sql.SQLException: No suitable driver
	at java.sql.DriverManager.getConnection(Unknown Source)
	at java.sql.DriverManager.getConnection(Unknown Source)
	at database.DatabaseConnection.<init>(DatabaseConnection.java:18)
	at database.DatabaseConnection.<clinit>(DatabaseConnection.java:9)
java.lang.StackOverflowError
Exception in thread "main" 



Danke für die Hilfe!!!!!!!!!!!!


----------



## jean20 (26. Okt 2004)

den Treiber habe ich schon gefunden!
Ich habe ihn auch in Eclipse als jar eingebunden. Muss man auch noch in Quelltest auf den treiber verweisen?? In einer Methode??


----------



## foobar (26. Okt 2004)

> Muss man auch noch in Quelltest auf den treiber verweisen?? In einer Methode??


Du mußt den Treiber mit Class.forName laden:

```
Class.forName("foo.bar.Driver");
```
Wenn du nicht weißt, wie dein Treiber heißt. Mußt du dir den Inhalt des Treibers anzeigen lassen(z.b. jar tf myDriver.jar) und den Pfad als Parameter für Class.forName verwenden.


----------



## jean20 (26. Okt 2004)

ja, genau diese Methode habe ich gesucht. Danke. Die Verbindung habe ich jetzt aufgebaut.


Habe noch eine Frage:
Ich möchte etwas in die DB einfügen. Dazu habe ich diese 2 Statements:

                                                Statement statement1= this.con.createStatement();
			String r1 = "rabattA";
			statement1.executeQuery("INSERT INTO test  VALUES(r1)");

			Statement statement2 = this.con.createStatement();
			String r2 = "rabattB";
			statement2.executeQuery("INSERT INTO test VALUES(r2)");



Warum ist das syntaktisch falsch??
Ich habe jetzt diese Exception:

java.sql.SQLException: A syntax error has occurred.
	at com.informix.util.IfxErrMsg.getSQLException(IfxErrMsg.java:348)
	at com.informix.jdbc.IfxSqli.addException(IfxSqli.java:3000)
	at com.informix.jdbc.IfxSqli.receiveError(IfxSqli.java:3310)
	at com.informix.jdbc.IfxSqli.dispatchMsg(IfxSqli.java:2263)
	at com.informix.jdbc.IfxSqli.receiveMessage(IfxSqli.java:2183)
	at com.informix.jdbc.IfxSqli.executeStatementQuery(IfxSqli.java:1310)
	at com.informix.jdbc.IfxSqli.executeStatementQuery(IfxSqli.java:1283)
	at com.informix.jdbc.IfxResultSet.executeQuery(IfxResultSet.java:219)
	at com.informix.jdbc.IfxStatement.executeQueryImpl(IfxStatement.java:815)
	at com.informix.jdbc.IfxStatement.executeQuery(IfxStatement.java:146)
	at database.DatabaseConnection.test(DatabaseConnection.java:41)
	at database.DatabaseConnection.<init>(DatabaseConnection.java:25)
	at database.DatabaseConnection.<clinit>(DatabaseConnection.java:9)


----------



## abollm (26. Okt 2004)

jean20 hat gesagt.:
			
		

> ja, genau....
> Habe noch eine Frage:
> Ich möchte etwas in die DB einfügen. Dazu habe ich diese 2 Statements:
> 
> ...



Verwende doch folgende Syntax:


```
Statement st = this.con.createStatement();
            st.executeUpdate("INSERT INTO test " +
                "VALUES ('rabattA')");
```

QUERY <> UPDATE


----------

