Anziché avere query SQL complesse, tentativi, catch e finali ovunque nel codice, ho un metodo execute(SQL, up to three inputs)
tuttavia se si tenta di accedere al ResultsSet che produce all'esterno dell'esecuzione si ottiene l'errore:Java Utilizzo del metodo SQL Execute ma accesso ai risultati
"Operation not allowed after ResultSet closed"
che è perché quando si chiude il PreparedStatement chiude la ResultsSetToo (e sembra che ci sia alcun modo intorno ad esso).
C'è un modo per risolvere questo problema? L'unica cosa che riuscivo a pensare era convertirlo in una matrice che è memorizzato
Molte grazie per il vostro tempo,
È necessario restituire un 'Map' per evitare di perdere informazioni sui tipi di dati effettivamente restituiti. E 'rs.getObject (1) .toString()' sarà bombardare con una NullPointerException se la tabella contiene i valori NULL. –
Tutti i tipi JDBC associati hanno un metodo toString(). E sul nulla, non ho avuto problemi. SELECT * Da una delle mie tabelle in cui è presente un campo DATE con valori nulli, stampa "null" sulla console. – athspk
Ovviamente hanno un metodo toString(). Ma convertire la stringa in "reale" potrebbe essere un problema.Come fai a sapere a quale oggetto dovrebbero essere riconvertiti? Che ne è della formattazione predefinita che dipende dalle impostazioni internazionali (separatore decimale, formati data e così via). Questo è proprio come memorizzare tutto in una colonna varchar nel database ... –