Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1

    Aggiornare JTable con DbUtils

    Tenendo presente che sto lavorando con NetBeans...
    Stavo provando questa strada per aggiornare una Jtable in un jFrame:
    http://technojeeves.com/joomla/index...-to-tablemodel

    Se ho capito bene...

    importo la libreria DbUtils...

    creo :
    connessione
    resultset
    statement

    dopodichè dentro UpdateJTable eseguo la query.

    ma Java mi restituisce l'eccezione:
    Cannot set a null TableModel...

    UpDateJTable () lo eseguo al caricamento della finestra.

    L'errore é chiaro. Ma come risolverlo con questa ..strada intrapresa no.




    codice:
    import java.sql.*; 
    import javax.swing.*;
    import net.proteanit.sql.DbUtils;
    public class QueryJFrame extends javax.swing.JFrame { 
    Connection conn = null; 
    ResultSet rs = null; 
    PreparedStatement pst = null; 
    private void UpdateJTable () { 
    String sql ="select ......"; 
    try { 
    pst = conn.prepareStatement(sql); 
    rs = pst.executeQuery(); 
    jTable1.setModel(DbUtils.resultSetToTableModel(rs)); 
    } catch (Exception e) { JOptionPane.showMessageDialog(null, e); }
    }

  2. #2
    Posta tutto lo stacktrace dell'eccezione, il problema molto probabilmente è nella creazione del tableModel quindi nella chiamata al metodo "resultSetToTableModel".

  3. #3
    codice:
    java.sql.SQLException: Value '0000-00-00' can not be represented as java.sql.Date
    	at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1073)
    	at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:987)
    	at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:982)
    	at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:927)
    	at com.mysql.jdbc.ResultSetRow.getDateFast(ResultSetRow.java:141)
    	at com.mysql.jdbc.ByteArrayRow.getDateFast(ByteArrayRow.java:238)
    	at com.mysql.jdbc.ResultSetImpl.getDate(ResultSetImpl.java:2185)
    	at com.mysql.jdbc.ResultSetImpl.getDate(ResultSetImpl.java:2147)
    	at com.mysql.jdbc.ResultSetImpl.getObject(ResultSetImpl.java:5017)
    	at net.proteanit.sql.DbUtils.resultSetToTableModel(DbUtils.java:28)
    	at javaapplicationdatabase.QueryJFrame.UpdateJTable(QueryJFrame.java:26)
    	at javaapplicationdatabase.QueryJFrame.formWindowOpened(QueryJFrame.java:159)
    	at javaapplicationdatabase.QueryJFrame.access$000(QueryJFrame.java:16)
    	at javaapplicationdatabase.QueryJFrame$1.windowOpened(QueryJFrame.java:65)
    	at java.awt.AWTEventMulticaster.windowOpened(AWTEventMulticaster.java:339)
    	at java.awt.Window.processWindowEvent(Window.java:2042)
    	at javax.swing.JFrame.processWindowEvent(JFrame.java:296)
    	at java.awt.Window.processEvent(Window.java:2003)
    	at java.awt.Component.dispatchEventImpl(Component.java:4860)
    	at java.awt.Container.dispatchEventImpl(Container.java:2287)
    	at java.awt.Window.dispatchEventImpl(Window.java:2713)
    	at java.awt.Component.dispatchEvent(Component.java:4686)
    	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:707)
    	at java.awt.EventQueue.access$000(EventQueue.java:101)
    	at java.awt.EventQueue$3.run(EventQueue.java:666)
    	at java.awt.EventQueue$3.run(EventQueue.java:664)
    	at java.security.AccessController.doPrivileged(Native Method)
    	at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
    	at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
    	at java.awt.EventQueue$4.run(EventQueue.java:680)
    	at java.awt.EventQueue$4.run(EventQueue.java:678)
    	at java.security.AccessController.doPrivileged(Native Method)
    	at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
    	at java.awt.EventQueue.dispatchEvent(EventQueue.java:677)
    	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:211)
    	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:128)
    	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:117)
    	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:113)
    	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:105)
    	at java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
    COSTRUITO CON SUCCESSO (tempo totale: 1 minuto 59 secondi)

  4. #4
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    In realtà l'errore è un altro a quanto pare:

    java.sql.SQLException: Value '0000-00-00' can not be represented as java.sql.Date

    Domanda: cosa stai passando? Cosa si aspetta il db?
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  5. #5
    Il problema è legato alla raprresentazione della Data.
    C'è anche scritto...più chiaro di così?

    Devi controllare questa rappresentazione...
    I computer sono incredibilmente veloci, accurati e stupidi.
    Gli uomini sono incredibilmente lenti, inaccurati e intelligenti.
    Insieme sono una potenza che supera l'immaginazione.

    A.Einstein

  6. #6
    in effetti eseguendo una query diversa, più semplice...
    per intenderci select * from tabella dove tabella prevede solo un id e una stringa il codice funziona correttamente.
    Vale a dire che la procedura é corretta.
    Presumo il problema a questo punto sia nel tipo di dato restituito dalla query in tabella.
    La tabella nel dB della Query "problematica" prevede un campo data formattato proprio come data... non vorrei che fosse la causa di tutti i problemi.

  7. #7
    Originariamente inviato da schumy2000
    Il problema è legato alla raprresentazione della Data.
    C'è anche scritto...più chiaro di così?

    Devi controllare questa rappresentazione...

  8. #8
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Originariamente inviato da 1000niumbug
    Presumo il problema a questo punto sia nel tipo di dato restituito dalla query in tabella.
    La tabella nel dB della Query "problematica" prevede un campo data formattato proprio come data... non vorrei che fosse la causa di tutti i problemi.
    Cioè? Che tipo hai usato quando hai creato la tabella? E che tipo gli stai passando?
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  9. #9
    Nello specifico il problema era solo in 3 record del db che avevano il campo data settato a :
    0000-00-00.

  10. #10
    Originariamente inviato da Alex'87
    Cioè? Che tipo hai usato quando hai creato la tabella? E che tipo gli stai passando?
    il campo del db problematico é data.
    Se eseguo la query omettendo il campo data funziona tutto perfettamente
    In se nemmeno il campo data é un problema.
    Tre record all'interno del db avevano il campo settato 0000-00-00
    eliminandoli o modificandoli il problema si é risolto.

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.