Autore Topic: Problema connessione con database Oracle  (Letto 898 volte)

Offline bakiko

  • Utente junior
  • **
  • Post: 74
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    HTC One
  • Sistema operativo:
    Windows 7
Problema connessione con database Oracle
« il: 24 Gennaio 2014, 19:49:22 CET »
0
Salve a tutti ragazzi. Ho un problema con una connessione ad un database Oracle. In particolare dovrei sviluppare una semplice applicazione che si interconnette con un database Oracle e che lo interroga con delle semplici query.
Ho scritto una semplice Activity che non fa altro che connettersi al database e manipolare i dati estratti:
Codice (Java): [Seleziona]
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_connection);
ResultSet rs;
Statement stmt;
String name=null;
                try {
                        Class.forName("oracle.jdbc.driver.OracleDriver");
                } catch (ClassNotFoundException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                }
                try {
                        Connection con=DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:[name_database]","[user]","[pass]");
                       
                        stmt = con.createStatement();
                        rs = stmt.executeQuery("select * from Surname");
                       
                } catch (SQLException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                }
Ovviamente ho scaricato il driver dal sito Oracle e inserito nel Classpath.La cosa strana è che il logcat non mi segnala nessun errore. In debug ho notato che quando va a creare l'oggetto Connection genera l'eccezione.

EDIT: In java questa è l'eccezione che viene generata
Codice (Java): [Seleziona]
java.sql.SQLException: Errore di I/O: The Network Adapter could not establish the connection
        at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:489)
        at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:553)
        at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:254)
        at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:32)
        at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:528)
        at java.sql.DriverManager.getConnection(Unknown Source)
        at java.sql.DriverManager.getConnection(Unknown Source)
        at Prova.parser(Prova.java:294)
        at Test.main(Test.java:12)
Caused by: oracle.net.ns.NetException: The Network Adapter could not establish the connection
        at oracle.net.nt.ConnStrategy.execute(ConnStrategy.java:439)
        at oracle.net.resolver.AddrResolution.resolveAndExecute(AddrResolution.java:454)
        at oracle.net.ns.NSProtocol.establishConnection(NSProtocol.java:693)
        at oracle.net.ns.NSProtocol.connect(NSProtocol.java:251)
        at oracle.jdbc.driver.T4CConnection.connect(T4CConnection.java:1140)
        at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:340)
        ... 8 more

Ringrazio a tutti per l'aiuto.....

Offline bradipao

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 4043
  • keep it simple
  • Respect: +567
    • Github
    • Google+
    • bradipao
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Bradipao
  • Sistema operativo:
    W7
Re:Problema connessione con database Oracle
« Risposta #1 il: 24 Gennaio 2014, 19:59:06 CET »
0
Hai messo il jar del driver nella libs del progetto?
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline bakiko

  • Utente junior
  • **
  • Post: 74
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    HTC One
  • Sistema operativo:
    Windows 7
Re:Problema connessione con database Oracle
« Risposta #2 il: 24 Gennaio 2014, 20:11:13 CET »
0
Hai messo il jar del driver nella libs del progetto?
Ti ringrazio per la pronta risposta, si certo inserito nella cartella libs il file .jar scaricato dal sito di Oracle

Offline ciopper90

  • Utente junior
  • **
  • Post: 106
  • Respect: +4
    • Mostra profilo
Re:Problema connessione con database Oracle
« Risposta #3 il: 25 Gennaio 2014, 01:12:05 CET »
0
Sbaglio o stai provando a effettuare una connessione con localhost???
Dovresti mettere l'indirizzo corretto della macchina
Anche se lavori su un emulatore dovresti inserire un IP particolare(sul forum c'è scritto ma non me lo ricordo.)

Inviato dal mio Nexus 7 utilizzando Tapatalk


Offline bradipao

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 4043
  • keep it simple
  • Respect: +567
    • Github
    • Google+
    • bradipao
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Bradipao
  • Sistema operativo:
    W7
Re:Problema connessione con database Oracle
« Risposta #4 il: 25 Gennaio 2014, 10:05:38 CET »
0
Sbaglio o stai provando a effettuare una connessione con localhost???
Dovresti mettere l'indirizzo corretto della macchina

ciopper ha ragione, localhost di fatto è l'emulatore android, non la macchina su cui gira. Tieni conto che l'emulatore android è come se fosse dentro una sua rete locale che si affaccia sulla tua rete locale fisica attraverso un NAT.

Prova a mettere direttamente l'IP di rete locale della macchina dove gira il database.
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline bakiko

  • Utente junior
  • **
  • Post: 74
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    HTC One
  • Sistema operativo:
    Windows 7
Re:Problema connessione con database
« Risposta #5 il: 25 Gennaio 2014, 10:54:28 CET »
0
Vi ringrazio ragazzi, io invece pensavo che la sintassi dell'url inserita fosse errata. Allora inserisco direttamente l'indirizzo ip dove risiede il database e vi faccio sapere....Grazie ;)

EDIT: Ragazzi il problema non era solo nell'indirizzo ma era proprio a monte: praticamente il prof. ci aveva dato dei dati errati in quanto il database era MySql e non Oracle. Adesso stavo facendo vari test interrogando questo database MySql. Provato in java sul computer ed è tutto perfetto, ma nel momento in cui riporto tutto sul device mi genera l'eccezione. Posto un po di codice:
Codice (Java): [Seleziona]
.....
public Statement connetti() {
                Statement stmt;
                try {
                        Class.forName("com.mysql.jdbc.Driver");
                } catch (ClassNotFoundException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                }
               
                        try {
                                con=DriverManager.getConnection("jdbc:mysql://xx.xxx.xxx.xxx/" + nomeDB + "?user=" + user + "&password=" + pass);
                                stmt = con.createStatement();
                                return stmt ;
                        } catch (SQLException e) {
                                // TODO Auto-generated catch block
                                e.printStackTrace();
                                stmt=null;
                                return stmt ;
                        }
        }


Ripeto, tale codice senza riportarlo su device funziona perfettamente (ottengo risultati da query senza problemi), ma nel momento in cui riporto tutto sul device "con" mi risulta null e mi genera l'eccezione. Da premettere che ho inserito i vari driver e connettori nella cartella libs.... Grazie in anticipo per l'aiuto
« Ultima modifica: 29 Gennaio 2014, 00:30:03 CET da bakiko »