失去了两个jDateChoosers日期跨度 [英] Lost in two jDateChoosers date spans

查看:99
本文介绍了失去了两个jDateChoosers日期跨度的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我迷路了,尝试从两个jDateChoosers中获取日期,然后查询derby数据库表"TEST5"列"DATEDATE"以将这两个日期之间的所有记录列出到我的jTable中.

I'm lost, trying to take dates from two jDateChoosers then query derby database table "TEST5" column "DATEDATE" to list all records between these two dates out to my 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);
        }

这是我的最新版本(抱歉,不确定在何处发布回复)

This is my latest revision ( sorry, not sure where to post reply's yet)

推荐答案

您无需将任何值设置为dateStart >= ? AND dateEnd <= ?,您必须使用:

You don't set any value to dateStart >= ? AND dateEnd <= ? you have to use:

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));

此外,请确保设置正确的列名称DateDate, dateStart, dateEnd

Also, make sure that you set the correct name of your columns, DateDate, dateStart, dateEnd

修改

如果我理解,在您的情况下,您的表只有一个日期,并且您想获取该日期的所有日期<= startDate>= endDate,在这种情况下,您可以使用:

If i understand, in your case your table has just one date and you want to get all the dates <= startDate and >= endDate this date, in this case you can use :

SELECT DateDate FROM TEST5 WHERE DateDate >= ? AND DateDate <= ?

与此between的相似之处:

SELECT DateDate FROM TEST5 WHERE DateDate between ? AND ?

这篇关于失去了两个jDateChoosers日期跨度的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆