Ciao a tutti,
premettendo che ad altri funziona, ho un'esercitazione basata su DAO con le classi che ho allegato, mentre questo è la classe Esecuzione che contiene il main:
codice:
package it.unirc.bd2.dao.myTest;
import java.util.Vector;
import it.unirc.bd2.dao.myBeans.Cliente;
import it.unirc.bd2.dao.myBeans.ClienteDAO;
public class Esecuzione {
public static void main(String[] args) {
{
ClienteDAO dao = new ClienteDAO();
System.out.println("***TASK 1 - stampa elenco****");
Vector<Cliente> v= dao.getClienti();
for(int i=0; i<v.size();i++)
System.out.println(i+1+" "+v.get(i).toString());
System.out.println("***TASK 2 - inserimento nuovo cliente****");
Cliente u = new Cliente();
int id = (int)(Math.random()*100);
u.setId(id);
u.setNome("Mario");
u.setCognome("Rossi");
dao.salvaCliente(u);
System.out.println("***TASK 3 - stampa nuovo elenco****");
v= dao.getClienti();
for(int i=0; i<v.size();i++)
System.out.println(i+1+" "+v.get(i).toString());
System.out.println("***TASK 4 - elimina Cliente****");
dao.eliminaCliente(u);
System.out.println("***TASK 5 - stampa nuovo elenco****");
v= dao.getClienti();
for(int i=0; i<v.size();i++)
System.out.println(i+1+" "+v.get(i).toString());
System.out.println("***FINE****");
}
}
}
quando lo eseguo da eclipse la console visualizza la prima riga
codice:
***TASK 1 - stampa elenco****
e dopo un minuto circa questo messaggio:
codice:
java.sql.SQLRecoverableException: Non vi sono altri dati da leggere nel socket at oracle.jdbc.driver.T4CMAREngine.unmarshalUB1(T4CMAREngine.java:1142)
at oracle.jdbc.driver.T4CMAREngine.unmarshalSB1(T4CMAREngine.java:1099)
at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:288)
at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:191)
at oracle.jdbc.driver.T4CTTIoauthenticate.doOAUTH(T4CTTIoauthenticate.java:366)
at oracle.jdbc.driver.T4CTTIoauthenticate.doOAUTH(T4CTTIoauthenticate.java:752)
at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:366)
at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:536)
at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:228)
at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:32)
at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:521)
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at it.unirc.bd2.dao.myUtil.DBManager.startConnection(DBManager.java:58)
at it.unirc.bd2.dao.myUtil.DBManager.executeSelect(DBManager.java:115)
at it.unirc.bd2.dao.myBeans.ClienteDAO.getClienti(ClienteDAO.java:32)
at it.unirc.bd2.dao.myTest.Esecuzione.main(Esecuzione.java:33)
Exception in thread "main" java.lang.NullPointerException
at it.unirc.bd2.dao.myUtil.DBManager.executeSelect(DBManager.java:120)
at it.unirc.bd2.dao.myBeans.ClienteDAO.getClienti(ClienteDAO.java:32)
at it.unirc.bd2.dao.myTest.Esecuzione.main(Esecuzione.java:33)
Sto usando eclipse kepler, jdk7, ojdbc6.jar, oracle sql developer 1.5.5. Su oracle ovviamente ho creato la tabella Clienti lasciata vuota, ma anche se la riempio il problema resta identico.