【问题标题】:Using jDateChooser in SQL query在 SQL 查询中使用 jDateChooser
【发布时间】:2016-11-15 14:06:16
【问题描述】:

我正在做一个小练习,使用 ORACLE HR 数据库Netbeans,我想使用搜索按钮计算两个 jDateChooser 值之间的差异,这是我的 jFrame 的屏幕截图,它解释了所有内容,包括我的输出错误:

这是我的代码:

import java.util.*;
import java.sql.*;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import javax.swing.*;
import javax.swing.table.DefaultTableModel;


public class Exercise extends javax.swing.JFrame {

     Connection Con = myConn.getCon();
     Statement St = null;
     ResultSet Rs = null;

     String tab[] = {"LAST_NAME", "FIRST_NAME", "JOB_TITLE", "DEPARTMENT_NAME", "SALARY"};
     DefaultTableModel dtm = new DefaultTableModel(tab, 0);

    public Exercise() {
        initComponents();

        jTable1.setModel(dtm);

        fill_combo_job();
        fill_combo_dept();

        int Rc = dtm.getRowCount();
        row_count_label.setText(Integer.toString(Rc));
    }

    public void fill_combo_job(){

             try{
             //Getting data from table JOBS

             St = Con.createStatement();
             Rs = St.executeQuery("SELECT DISTINCT JOB_ID FROM JOBS");

             //Filling our jcombobox

             while(Rs.next()){
                 job_id_combo.addItem(Rs.getString("JOB_ID"));
             }

         }catch(Exception ex){

             System.out.println(ex.toString());
    }
    }

    private void fill_combo_dept(){

        try{

            St = Con.createStatement();
            Rs = St.executeQuery("SELECT DISTINCT DEPARTMENT_ID FROM EMPLOYEES WHERE DEPARTMENT_ID IS NOT NULL ORDER BY DEPARTMENT_ID");

            while(Rs.next()){
                dept_id_combo.addItem(Rs.getString("DEPARTMENT_ID"));
            }

        }catch(Exception ex){

            System.out.println(ex.toString());
        }

    }

    private void search_btn(){

        DateFormat df = new SimpleDateFormat("dd/MM/yyyy");
        String date1 = df.format(jDateChooser1.getDate());
        String date2 = df.format(jDateChooser2.getDate());



        try{

   St = Con.createStatement();
   Rs = St.executeQuery("SELECT e.LAST_NAME, e.FIRST_NAME, j.JOB_TITLE, d.DEPARTMENT_NAME, e.SALARY FROM EMPLOYEES e, JOBS j, DEPARTMENTS d "
   + "WHERE j.JOB_ID = e.JOB_ID "
   + " AND d.DEPARTMENT_ID = e.DEPARTMENT_ID"
   + " AND j.JOB_ID = "+job_id_combo.getSelectedItem().toString()+" AND e.DEPARTMENT_ID = "+dept_id_combo.getSelectedItem().toString()
   + " AND HIRE_DATE BETWEEN TO_CHAR ('"+date1+"', 'dd/MM/yyyy') AND TO_CHAR('"+date2+"', 'dd/MM/yyyy')"
   + " AND SALARY > "+salary_field.getText());

   while(Rs.next()){

    dtm.addRow(new Object[]{Rs.getString("LAST_NAME"), Rs.getString("FIRST_NAME"),
    Rs.getString("JOB_TITLE"), Rs.getString("DEPARTMENT_NAME"), Rs.getInt("SALARY")});
            }

            Con.close();
            St.close();
            Rs.close();


        }catch(Exception ex){

            System.out.println(ex.toString());
        }


    }

    public void reset_form(){

        job_id_combo.setSelectedIndex(0);
        dept_id_combo.setSelectedIndex(0);
        salary_field.setText("");


    }

【问题讨论】:

  • 在发布时考虑这些事情:1)发布最小问题 2)仅发布有问题的代码)。此外,您的屏幕截图说明了一些不同的内容,您的问题说明了一些不同的内容。这与 jDateChooser 无关,因为问题在于 AC_MGR。在发布之前了解您的问题。'

标签: java sql swing netbeans jdatechooser


【解决方案1】:

此错误表示您的查询有问题。错字、不正确的引号、不正确的大小写。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-01-17
    • 2019-04-01
    • 2021-07-11
    • 2013-10-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多