Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2011
    Messaggi
    2

    SQLite JDBC - ResultSet rs.getDate non funziona correttamente

    ciao a tutti, questo è il mio primo messaggio sul forum.
    sto sviluppando una piccola applicazione desktop a scopo didattico, ho scelto di utilizzare SQLite come db in quanto serverless e molto portabile. La versione che ho utilizzato è quella JDBC integrabile come .jar in un progetto (http://www.zentus.com/sqlitejdbc/).
    ho creato una tabella LETTURE con:

    codice:
    create table if not exists letture (codut TEXT, data DATE, mcubi REAL, PRIMARY KEY(codut,data));
    l'inserimento va a buon fine:
    codice:
    insert or replace into letture (codut,data,mcubi) values ('k3','20/01/2010',8.9);
    il problema è nel recuperare i dati via JDBC, quindi scorrendo un ResultSet sul risultato della query:
    codice:
    select * from letture where codut='k3' order by data asc;
    ebbene ciò che mi restituisce rs.getDate("data") è sempre 01/01/1970. Eppure la data viene inserita correttamente nel db, infatti la stessa query eseguita da shell dà come risultato:
    codice:
    ./sqlite3
    sqlite> select * from letture where codut = 'k3';
    k3|20/01/2010|8.9
    ho provato anche a creare la tabella usando TIME invece di DATE come tipo per la colonna 'data', ma comunque con rs.getData("data") oppure rs.getTime("data") il risultato è sempre lo stesso: 01/01/1970. Sapreste dirmi se utilizzo il tipo sbagliato in java (Date invece di qualcosaltro)?

    grazie
    Ciao

  2. #2
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    non conosco sqlite, ma guardando quella query mi viene un sospetto: come viene interpretato '20/10/2010' ? E' un formato standard? e se non lo fosse, il motore di sqlite defaulta a qualcosa di inatteso (null, epoch, altro?)

    hai un qualche tool (tipo phpmysql oppure MySQL workbench per MySQL) con cui andare ad "esplorare" le tabelle?
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2011
    Messaggi
    2
    non saprei. ho cercato con i db tools di Eclipse e Netbeans di 'esplorare' il database, ma pur connettendosi non c'è traccia delle mie tabelle. a questo punto sto per meditare se cambiare con qualche altro db embedded tipo hsql, mysql-embedded o apache derby. o è meglio rimanere su sqlite?

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: SQLite JDBC - ResultSet rs.getDate non funziona correttamente

    Originariamente inviato da lboc80
    l'inserimento va a buon fine:
    codice:
    insert or replace into letture (codut,data,mcubi) values ('k3','20/01/2010',8.9);
    Nemmeno io conosco SQLite ma: 1) se proprio vuoi comporre tu la query, io cercherei innanzitutto di seguire quanto dice qui e 2) altrimenti sarebbe preferibile usare un PreparedStatement e lavorare in termini di oggetti (java.sql.Date).
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.