Estoy perdido, tratando de tomar fechas de dos jDateChoosers y luego consultar la tabla de base de datos derby "TEST5" columna "DATEDATE" para enumerar todos los registros entre estas dos fechas en mi jTable.
private void jButton5ActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: String url = "jdbc:derby://localhost:1527/test5"; String user = "APP"; String pass = "APP"; Connection con = null; try { con = DriverManager.getConnection(url ,user, pass); } catch (SQLException ex) { Logger.getLogger(MainDisplay.class.getName()).log(Level.SEVERE, null, ex); } java.sql.Date dateStart = new java.sql.Date(jDateChooser2.getDate().getTime()); java.sql.Date dateEnd = new java.sql.Date(jDateChooser3.getDate().getTime()); try (PreparedStatement st = con.prepareStatement("SELECT DateDate FROM TEST5 WHERE DateDate between ? AND ?" ); ResultSet rs = st.executeQuery()) { st.setDate(1, dateStart);//set start date st.setDate(2, dateEnd);//set end date MainDisplay.jTable1.setModel(DbUtils.resultSetToTableModel(rs)); rs.close(); st.close(); con.close(); } catch (SQLException ex) { Logger.getLogger(MainDisplay.class.getName()).log(Level.SEVERE, null, ex); }Esta es mi última revisión (lo siento, aún no estoy seguro de dónde publicar las respuestas)
¿No establece ningún valor para dateStart >= ? AND dateEnd <= ? tienes que usar:
try (PreparedStatement st = con.prepareStatement("SELECT DateDate FROM TEST5 WHERE dateStart >= ? AND dateEnd <= ?");) { st.setDate(1, dateStart);//set start date st.setDate(2, dateEnd);//set end date ResultSet rs = st.executeQuery() MainDisplay.jTable1.setModel(DbUtils.resultSetToTableModel(rs)); Además, asegúrese de establecer el nombre correcto de sus columnas, DateDate, dateStart, dateEnd
Editar
Si entiendo, en su caso, su tabla tiene solo una fecha y desea obtener todas las fechas <= startDate y >= endDate esta fecha, en este caso puede usar:
SELECT DateDate FROM TEST5 WHERE DateDate >= ? AND DateDate <= ? Este similar a este between :
SELECT DateDate FROM TEST5 WHERE DateDate between ? AND ?