# JDBC Oracle Verbindungsaufbau



## 0plan (26. Jul 2012)

Moin, 

damals konnte ich ohne Probleme mittels folgendem Code eine Verbindung zu unserer Oracle Datenbank herstellen. Nach langer Zeit wollte ich es mal wieder mittels Java probieren, doch es funktioniert nicht mehr. Hier der Code:


```
import java.sql.*;
import oracle.jdbc.OracleDriver;

public class JdbcThinTnsNamesTest
{ 
  public JdbcThinTnsNamesTest()
  {
    System.setProperty("oracle.net.tns_admin",
                        "C:/Oracle/");
  }

  public static Connection getConnection() throws SQLException
  {
    String username = "testdb";
    String password = "testpw;
    String thinConn = "jdbc:oracle:thin:@testserver";
    DriverManager.registerDriver(new OracleDriver());
    Connection conn = DriverManager.getConnection(thinConn,username,password);
    conn.setAutoCommit(false);
    return conn;
  }
 
  public void run () throws SQLException
  {
    Connection conn = getConnection();
    System.out.println("Auto Commit = " + conn.getAutoCommit());
    conn.close();
  }
 
  public static void main(String[] args)
  {
    JdbcThinTnsNamesTest test = new JdbcThinTnsNamesTest();
    try
    {
      test.run();
      System.out.println("all done..");
    }
    catch (SQLException e)
    {
      e.printStackTrace();
    }
  }
 
}
```

STACKTRACE:

java.sql.SQLException: I/O Exception: The Network Adapter could not establish the connection
	at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:111)
	at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:145)
	at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:254)
	at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:386)
	at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:440)
	at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:164)
	at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:34)
	at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:752)
	at java.sql.DriverManager.getConnection(DriverManager.java:579)
	at java.sql.DriverManager.getConnection(DriverManager.java:221)
	at JdbcThinTnsNamesTest.getConnection(JdbcThinTnsNamesTest.java:18)
	at JdbcThinTnsNamesTest.run(JdbcThinTnsNamesTest.java:25)
	at JdbcThinTnsNamesTest.main(JdbcThinTnsNamesTest.java:35)



Dieses Beispiel habe ich jetzt aus dem Internet da ich dachte, vlt habe ich versehentlich etwas in meinem alten Code abgeändert. Ich konnte jedoch keine andere Vorgehensweise in dem neuen Code gegenüber meines alten erkennen. 

Vlt könnt ihr mir ja helfen.

Damalas hatte ich noch


```
System.setProperty("oracle.net.tns_admin",
  	                        "C:/oracle/");
```

beim Programmstart aufgerufen, da bekam ich jedoch eine weitere Exception.

Exception in thread "main" java.lang.NoSuchMethodError: oracle.i18n.text.converter.CharacterConverterOGS.getInstance(I)Loracle/sql/converter/CharacterConverters;


----------



## Gast2 (26. Jul 2012)

Wenn du nur den JDBC Thin Treiber brauchst würde ich gar nicht über die TNS Names gehen... Das ist nur in Ausnahmefällen sinnvoll/notwendig, sprich OCI.

Probier doch mal:


```
DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());  
Connection connection = DriverManager.getConnection(  
                    "jdbc:oracle:thin:@deineMachine:derPort:DBName", "user", "password");
```


----------



## 0plan (26. Jul 2012)

Danke für deine Hilfe, leider funktioniert es dadurch auch nicht. Bekomme noch eine IO Exception

```
java.sql.SQLException: I/O Exception: The Network Adapter could not establish the connection
```


----------



## maestr0 (26. Jul 2012)

Erstmal solltest du das Gänsefüschen nach     String password = "testpw; schließen


----------



## 0plan (26. Jul 2012)

Daran liegts nicht das hab ich wohl nur beim Kopieren fürs Forum vergessen, der Compiler würde mir das schon melden. Ich bekomme immernoch Fehler.


----------



## homer65 (26. Jul 2012)

Warum willst du den ursprünglichen funktionierenden Code ändern?


> The Network Adapter could not establish the connection


Deutet auf ein Netzwerkproblem hin und nicht auf einen Programmfehler.
Ist die Datenbank überhaupt gestartet?


----------



## Gast2 (26. Jul 2012)

Oder die Datenbank wurde umgezogen und die TNS Names nicht angepasst. Deswegen ist es nicht schlecht einfach einmal selber die IPortB im Connection String zu probieren.


----------

