|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Jul 1999
Città: Roma
Messaggi: 614
|
[Java] If in cui entra sempre
Ho questo metodo:
Codice:
public int updateCliente(Connection c, Cliente d) throws SQLException { int id = -1 ; String s = d.getCognome(); String s1 = d.getNome(); String idQuery="SELECT * FROM cliente where " + Cliente.COGNOME + "=" + "'" +s +"' AND " + Cliente.NOME + "=" + "'" +s1 +"'"; System.out.println(idQuery); Statement st=c.createStatement(); ResultSet rs=st.executeQuery(idQuery); rs.next(); id=rs.getInt(1); String upQuery = "UPDATE cliente SET "; String upQuery2= "WHERE "+Cliente.NOME+"="+"'"+d.getNome()+"' AND " +Cliente.COGNOME+ "="+"'"+ d.getCognome()+"'"; if ( d.getCitta() != " " ) { upQuery = upQuery + Cliente.CITTA + "=" +"'"+d.getCitta()+"'"; } if (d.getEmail()!= " ") { upQuery = upQuery +","+ Cliente.EMAIL+ "=" +"'"+d.getEmail()+"'"; } if (d.getTelefono() != null) { upQuery = upQuery +","+ Cliente.TELEFONO + "=" +"'"+d.getTelefono()+"'"; } if (d.getNazione()!= null) { upQuery = upQuery +","+ Cliente.NAZIONE + "=" +"'"+d.getNazione()+"'"; } if (d.getLingua()!= null) { upQuery = upQuery +","+ Cliente.LINGUA + "=" +"'"+d.getLingua()+"'"; } upQuery= upQuery+upQuery2; System.out.println(upQuery); st.executeUpdate(upQuery); return id; }
__________________
...What you know that you time is close at hand, maybe then you'll begin to understand, life down there is just a strange illusion. |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Jul 1999
Città: Roma
Messaggi: 614
|
Sono un cretino devo usare il metodo equals...
__________________
...What you know that you time is close at hand, maybe then you'll begin to understand, life down there is just a strange illusion. |
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12103
|
c'è anke il metodo x ignorare il case volendo solo ke il nome preciso non lo ricordo....
__________________
![]() |
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Jul 1999
Città: Torino
Messaggi: 2221
|
Esatto, l'uguale serve a testare l'uguaglianza fra puntatori, ovvero se puntano allo steso oggetto (locazione di memoria). Il metodo x ignorare il case è...guarda un po'
![]() |
![]() |
![]() |
![]() |
#5 | |
Senior Member
Iscritto dal: Jul 2004
Messaggi: 1578
|
Quote:
![]() puntatori non necessariamente |
|
![]() |
![]() |
![]() |
#6 |
Senior Member
Iscritto dal: Jul 1999
Città: Torino
Messaggi: 2221
|
Uff... Per puntatori io indico variabili che puntano (si riferiscono) ad oggetti. Cosa intendi per riferimenti?
![]() Ultima modifica di cn73 : 18-12-2004 alle 12:54. |
![]() |
![]() |
![]() |
#7 |
Senior Member
Iscritto dal: Feb 2001
Città: Kasteddu
Messaggi: 1890
|
== confronta semplicemente il valore contenuto dalle variabili.
Che poi il contenuto sia un tipo primitivo o un indirizzo di memoria non è fondamentale ![]()
__________________
Asus P5Q-E - Intel Q6600 - Corsair 4GB DDR2 - Radeon HD5770 - Seagate 320GB sata2 16M - Audigy2 ZS Acer Aspire 3023 WLMI |
![]() |
![]() |
![]() |
#8 | |
Senior Member
Iscritto dal: Jul 1999
Città: Torino
Messaggi: 2221
|
Quote:
Perchè il valore di una variabile di tipo primitivo dov'è contenuto? |
|
![]() |
![]() |
![]() |
#9 | |
Senior Member
Iscritto dal: Feb 2001
Città: Kasteddu
Messaggi: 1890
|
Quote:
tant'è che non si può creare un alias e vengono sempre passati per valore ai metodi. Una variabile in java può contenere un valore, il quale può essere: 1) Un tipo primitivo (int,float etc etc) 2) Un indirizzo ad un'area di memoria. All'atto pratico, le due categorie sono identiche per l'operatore == se io faccio: int a = 0; int b = 1; if(a == b).... viene confrontato il contenuto delle due variabili e la condizione sarà vera solo se coicidono ok? non posso cambiare l'indirizzo nel quale è contenuto il valore di a, posso solo assegnargli o cambiarne il valore contenuto, ok? Quindi poco importa parlare di indirizzi di memoria, in questo caso. Analogamente, se io faccio: Classe c = new Classe(); Classe d = new Classe(); if(c == d)..... Come prima, viene semplicemente confrontato il contenuto delle due variabili. la variabile c conterrà un valore che rappresenta un indirizzo di memoria, la variabile d conterrà ugualmente un valore. Se i due valori (che in questo caso sono riferimenti ad aree di memoria) coincidono, la condizione è vera, esattamente la stessa cosa che accade per i tipi primitivi. Chiaro il senso, ora?
__________________
Asus P5Q-E - Intel Q6600 - Corsair 4GB DDR2 - Radeon HD5770 - Seagate 320GB sata2 16M - Audigy2 ZS Acer Aspire 3023 WLMI |
|
![]() |
![]() |
![]() |
#10 |
Senior Member
Iscritto dal: Jul 1999
Città: Torino
Messaggi: 2221
|
A me era chiarissimo anche prima di questa spiegazione fra l'altro interessante (senza ironia); ti richiedo:
Perchè il valore di una variabile di tipo primitivo dov'è contenuto? |
![]() |
![]() |
![]() |
#11 | |
Senior Member
Iscritto dal: Feb 2001
Città: Kasteddu
Messaggi: 1890
|
Quote:
Per uno sviluppatore questo non ha alcuna importanza. Normalmente cmq stanno anch'esse in un'area di memoria, ma non ti so dire se le jvm le allochino nello stack (come da logica) o nello heap o in l'uno o l'altro a seconda di criteri a me sconosciuti.
__________________
Asus P5Q-E - Intel Q6600 - Corsair 4GB DDR2 - Radeon HD5770 - Seagate 320GB sata2 16M - Audigy2 ZS Acer Aspire 3023 WLMI |
|
![]() |
![]() |
![]() |
#12 |
Senior Member
Iscritto dal: Jul 1999
Città: Torino
Messaggi: 2221
|
Non era una domanda trabocchetto! La risposta comunque è corretta: sia che stiano nella heap che nello stack ...stanno in memoria!
![]() ![]() |
![]() |
![]() |
![]() |
#13 | |
Senior Member
Iscritto dal: Feb 2001
Città: Kasteddu
Messaggi: 1890
|
Quote:
![]() Potrebbero stare solo in un registro per tutta l'esecuzione del processo e non essere mai messa in stack ![]() E come sai... parlare di puntatori ad una variabile in stack è quantomeno errato. Cmq credo che il senso della frase di end.is.forever fosse che il confronto è tra riferimenti e non puntatori, ad esempio: Classe c = new Classe(); if(c == new Classe()) .... In questo caso, non puoi dire chè un confronto tra puntatori perchè il secondo non lo è, è invece un confronto tra riferimenti. Lo stesso c è un puntatore, cioè è una variabile che contiene un riferimento alla memoria. Quindi anche secondo me è errato parlare di confronto tra puntatori (anche se è veramente una pignoleria ![]()
__________________
Asus P5Q-E - Intel Q6600 - Corsair 4GB DDR2 - Radeon HD5770 - Seagate 320GB sata2 16M - Audigy2 ZS Acer Aspire 3023 WLMI |
|
![]() |
![]() |
![]() |
#14 |
Senior Member
Iscritto dal: Jul 1999
Città: Torino
Messaggi: 2221
|
Ho capito ho capito, sei uno di quelli con cui non si deve discutere!
![]() |
![]() |
![]() |
![]() |
#15 | |
Senior Member
Iscritto dal: Feb 2001
Città: Kasteddu
Messaggi: 1890
|
Quote:
![]()
__________________
Asus P5Q-E - Intel Q6600 - Corsair 4GB DDR2 - Radeon HD5770 - Seagate 320GB sata2 16M - Audigy2 ZS Acer Aspire 3023 WLMI |
|
![]() |
![]() |
![]() |
#16 |
Senior Member
Iscritto dal: Jul 1999
Città: Torino
Messaggi: 2221
|
No, è questione di buon senso. Volendo possiamo attaccarci a 2000 argomentazioni teoriche per altri 300 post, ma la sostanza è quella. Ti potrei dire che un registro non è altro che una cache hardware e che un'insieme di registri formano una "memoria" ad alta velocità, e che perciò è sempre una memoria, e che infine la mia affermazione non era sbagliata...
Ma non lo farò, perchè siamo fra persone intelligenti e abbiamo capito che cosa volevamo dire... |
![]() |
![]() |
![]() |
#17 | |
Senior Member
Iscritto dal: Feb 2001
Città: Kasteddu
Messaggi: 1890
|
Quote:
Detto questo... ![]() Ciao
__________________
Asus P5Q-E - Intel Q6600 - Corsair 4GB DDR2 - Radeon HD5770 - Seagate 320GB sata2 16M - Audigy2 ZS Acer Aspire 3023 WLMI |
|
![]() |
![]() |
![]() |
#18 | |
Senior Member
Iscritto dal: Jul 1999
Città: Torino
Messaggi: 2221
|
Quote:
![]() Ultima modifica di cn73 : 24-12-2004 alle 12:51. |
|
![]() |
![]() |
![]() |
#19 |
Senior Member
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12103
|
posso partecipare alla bevuta?
![]() ![]() ![]() ![]()
__________________
![]() |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 07:44.