# No suitable driver found for jdbc:oracle:thin:@$HOST:$PORT:$SID



## Bortecin (11. Dez 2012)

Hallo, beim Ausführen des unten stehenden Codes, stosse ich auf die folgende Fehlermeldung:

Oracle JDBC driver loaded ok.
java.sql.SQLException: No suitable driver found for jdbcracle:thin$HOST:$PORT:$SID
   at java.sql.DriverManager.getConnection(Unknown Source)
   at java.sql.DriverManager.getConnection(Unknown Source)
   at example.Client.getData(Client.java:31)
   at example.Client.main(Client.java:54)

*Was kann der Grund sein?*


```
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

import javax.jws.WebMethod;

import example.stackoverflow.Greeting;
import example.stackoverflow.GreetingImplService;

public class Client {
	
	@WebMethod
	{
	public static void getData()  {
		String user="DB";
		String pwd = "password";
		String url="jdbc:oracle:thin:@xxx.yy.zz.zz:1521:ABC";
		String OracleDriver = "oracle.jdbc.OracleDriver";
		Connection conn = null;
		Statement stmt = null;
		ResultSet rs = null;
		
 		try {	
 			 
 			 DriverManager.registerDriver (new oracle.jdbc.OracleDriver());
 			 System.out.println("Oracle JDBC driver loaded ok.");
 			 conn = DriverManager.getConnection(url, user, pwd);
 			 System.out.println("Connected");
 			
 			 stmt = conn.createStatement();
 			 
 			
 		} catch (SQLException e) {
 			e.printStackTrace();
 		}
				
	}
```


----------



## nillehammer (11. Dez 2012)

Die Syntax der jdbc-thin-Url schein nicht korrekt zu sein. Laut der Doku hier 3 Datasources and URLs müsste der Teil nach dem "@" so aussehen: 
	
	
	
	





```
@//host_name:port_number/service_name
```
. Bei Dir also:

```
String url="jdbc:oracle:thin:@//xxx.yy.zz.zz:1521/ABC";
```


----------



## SlaterB (11. Dez 2012)

Links wie
No suitable driver found for jdbcracle:thinlocalhost:1521:Indu [Solved] (JDBC forum at JavaRanch)
nutzen eher 

oracle.jdbc.driver.OracleDriver
als
oracle.jdbc.OracleDriver

teste mal ob das einen Unterschied ergibt


----------



## Bortecin (11. Dez 2012)

Leider funktionieren keiner von beiden Vorschlaegen ...


----------



## SlaterB (11. Dez 2012)

hast du die Zeile
> DriverManager.registerDriver (new oracle.jdbc.OracleDriver());
geändert?

http://forums.whirlpool.net.au/archive/772548


----------



## Bortecin (12. Dez 2012)

Ja, der Driver wird ohne Probleme installiert....


----------



## SlaterB (12. Dez 2012)

auch diese Antwort läßt strenggenommen nicht erkennen, ob du die Tragweite erkannt, die Zeile geändert hast,
aber das eher als Hinweis zum deutlichen Schreiben, kann nicht wirklich annehmen, dass der Tipp noch was taugt

um noch ein bisschen den Platz zu nutzen, aber bin eher nicht Experte:
ist die DB auf einem fremden Rechner oder unter localhost?
hat schon ein anderes Tool erfolgreich Zugriff?

schon reine kopierte Tutorials mit lokalen DBs getestet?


----------



## Aiwendil (12. Dez 2012)

Versuch mal den Treiber dynamisch suchen zu lassen, dazu packst du die jar mit dem Connector in den classpath und führst das hier aus:


```
Class.forName("com.mysql.jdbc.Driver");
try {
	Connection connection = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/settingscm",
					usr, pw);
        Statement stmt = conn.createStatement();

} catch (SQLException e) {
}
```


----------

