|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Apr 2004
Messaggi: 364
|
[Java] Recuperare dati da un DB
Salve ragazzi, sto provando a collegarmi con java ad un db fatto con Postgresql, usando jdbc, ho scaricato i driver e ho messo il loro percorso nel file path, ma non capisco cosa c'è di sbagliato nel mio metodo che preleva i dati dal db, visto che l'eccezione mi segnala un java.lang.NullPointerException, comunque questo è il metodo. Grazie a chi vorrà aiutarmi
Codice:
class db
{
public void Interroga()
{
String c,n,m;
try
{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection con = DriverManager.getConnection("jdbc:odbc:vivaio");
Statement stat = con.createStatement();
ResultSet res = stat.executeQuery("SELECT * FROM piante");
while (res.next())
{
c=res.getString("id_pianta");
n=res.getString("nome");
m=res.getString("tipo");
System.out.println(c+n+m);
}
res.close();
stat.close();
con.close();
}
catch(Exception e)
{
System.out.println("Problema: " + e.toString());
}
}
}
|
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Dec 2002
Messaggi: 418
|
Ti conviene aggiungere e.printStackTrace(); al blocco del catch, così scopri qual'è la riga che genera l'eccezione
Apparentemente il codice mi sembra tutto apposto.. |
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Apr 2004
Messaggi: 364
|
Secondo il printStackTrace, il problema è qui
Connection con = DriverManager.getConnection("jdbc:odbc:vivaio"); Forse ci sono problemi con la stringa di connessione al db, ho forse bisogna settare postgresql per usare i JDBC |
|
|
|
|
|
#4 | |
|
Senior Member
Iscritto dal: Dec 2002
Messaggi: 418
|
Quote:
|
|
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Apr 2004
Messaggi: 364
|
Cosa intendi per settare il DNS di sistema?
Comunque ora mi segnala questo errore La proprietà ``user'' è mancante. E` obbligatoria. |
|
|
|
|
|
#6 | |
|
Senior Member
Iscritto dal: Dec 2002
Messaggi: 418
|
Quote:
Comunque se ora ti chiede l'user, allora direi che stai già parlando con il database...quindi non è una questione di trovare o meno vivaio Sul sito di PostgreSQL ho cercato la parola "java" ed ho trovato un link con questo codice: Codice:
Class.forName("org.postgresql.Driver");
conn = DriverManager.getConnection("jdbc:postgresql:test", "testuser", "");
Sembra che in getConnection tu debba specificare l'user che ti viene segnalato mancante.. |
|
|
|
|
|
|
#7 |
|
Senior Member
Iscritto dal: Apr 2004
Messaggi: 364
|
Ho fatto quello che diceva il sito, ma mi segnala l'eccezione Connessione rifiutata. Controllare che il nome dell'host e la porta siano corretti, e che il server (postmaster) è in esecuzione con l'opzione -i, che abilita le connessioni attraverso la rete TCP/IP.
Eppure ho settato il file di postmaster con -i e messo nel file postgresql.conf tcpip_socket = true |
|
|
|
|
|
#8 |
|
Senior Member
Iscritto dal: Jul 2002
Messaggi: 4334
|
OT
Ma i nomi delle classi non dovrebbero cominciare con una maiuscola e i nomi dei metodi con una minuscola? FINE OT |
|
|
|
|
|
#9 | |
|
Senior Member
Iscritto dal: Jan 2003
Città: Milano - Udine
Messaggi: 9418
|
Quote:
Alla fine l'importante è scrivere il nome della classe identico al nome del file, altrimenti... |
|
|
|
|
|
|
#10 | ||
|
Senior Member
Iscritto dal: Dec 2002
Messaggi: 418
|
Quote:
Quote:
EDIT: Non avevo fatto caso che DioBrando aveva già risposto sulla convenzione dei nomi....cmq come già detto è una convenzione non un obbligo Ultima modifica di BlueDragon : 04-09-2005 alle 20:12. |
||
|
|
|
|
|
#11 |
|
Senior Member
Iscritto dal: Jul 2002
Messaggi: 4334
|
lo so anche io che è una convenzione, ma non capisco che senso ha invertirla, chiamando una classe db e un metodo Interroga()
(Mi riferisco al primo post) |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 19:58.



















