JDBC Oracle Verbindungsaufbau

0plan

Bekanntes Mitglied
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:

Java:
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

Java:
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;
 
Zuletzt bearbeitet:
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:

Java:
DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());  
Connection connection = DriverManager.getConnection(  
                    "jdbc:oracle:thin:@deineMachine:derPort:DBName", "user", "password");
 
Danke für deine Hilfe, leider funktioniert es dadurch auch nicht. Bekomme noch eine IO Exception
Java:
java.sql.SQLException: I/O Exception: The Network Adapter could not establish the connection
 
😛 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.
 
Oder die Datenbank wurde umgezogen und die TNS Names nicht angepasst. Deswegen ist es nicht schlecht einfach einmal selber die IP😛ort😀B im Connection String zu probieren.
 

Zurück
Oben