Originariamente inviata da
andbin
Ok, è un Object[] . Ma quando entri in quel [I]if(columnClass
== Date.class) l'oggetto REALE quale è? E' un java.util.Date o un String??
Se fosse già un Date .. non devi fare alcun giro "strano" con i valueOf. È realmente un Date, quindi basta fare un banale cast:
codice:
rs.updateDate(columnNames[i], (Date) date[i]);
Se fosse un String, va parsato in Date (come detto prima).
Ma non puoi andare avanti con "lacune" su queste basi di Java ...
Quale sia il formato usato da MySQL, qui NON importa. Se usi updateDate, devi solo passare un Date (che NON ha un "formato" ... è solo un istante nel tempo al millisecondo). Come deve essere passato a MySQL è una questione che si gestisce il driver JDBC Connector/J di MySQL.
Ciao purtroppo non riesco a cavarci fuori. Sto impazzendo. Prendo una riga dalla jtable(che è quella selezionata)
codice:
Object[] modified=dataModel.getDataVector().get(row).toArray();
Il column è questo
codice:
String[] richiamoColumns=new String[]{"ID", "Data", "CF", "Descrizione"};
Class<?>[] richiamoColumnClass=new Class<?>[]{Integer.class, Date.class, String.class, String.class};
Object[] richiamoDefaultValues=new Object[]{999, date, "AAAAAAAAAAAAAAAAA", "rthjtj"};
Chiamo una metodo updaterow(modified,row) dove row è l'indice di riga selezionata.
mi sposto alla riga selezionata
[/CODE]rs.absolute(row+1);[CODE]
dove scorrendo la rsset confronto le classi
codice:
else if(columnClass[i] == Date.class) {
else if(columnClass[i] == Date.class) {
if(!rs.getDate(columnNames[i]).equals(data[i])){
rs.updateDate(columnNames[i],Date.valueOf((String) data[i]));
Mi inserisce la data, ma se la data è 2020-01-02 mi inserisce il giorno prima non capisco cosa ci sia