Search code examples
javasqliteswingjtextfield

How to query SQLite database based on textfield entry with "0's"?


I am creating a small database that can store the records of my job numbers. I want to start each job number with 2 zeros (00) and then put the number of the job after. Like this "001-2019". When I go to query the database, it doesnt work. But if I get rid of the zeros and get rid of any special characters, it works fine. How can I use the zeros and special characters to query the database?

        btnOpen.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent evt) {
                String jobNumber = txtJobNumber.getText();
                String sql = "SELECT Date FROM JOBCOSTS where Job_Number =" +jobNumber;
                try {
                    pst=conn.prepareStatement(sql);
                    rs = pst.executeQuery();
                    if(rs.next()) {
                    String date=rs.getString("Date");
                    txtJobCostDate.setText(date);

                    }
                }catch (Exception e) {
                    JOptionPane.showMessageDialog(null, e);

                }
            }
        });

Solution

  • First try using parametarized query since you are already using Prepared statements.

    String sql = "SELECT Date FROM JOBCOSTS where Job_Number = ?";
    pst=conn.prepareStatement(sql);
    pst.setString(1, jobNumber);
    

    Second, is your jobNumber should be in string so your leading zeroes will not be truncated.

    btnOpen.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent evt) {
            String jobNumber = txtJobNumber.getText();
            String sql = "SELECT Date FROM JOBCOSTS where Job_Number ='" +jobNumber+"'";
            try {
                pst=conn.prepareStatement(sql);
                rs = pst.executeQuery();
                if(rs.next()) {
                String date=rs.getString("Date");
                txtJobCostDate.setText(date);
    
                }
            }catch (Exception e) {
                JOptionPane.showMessageDialog(null, e);
    
            }
        }
    });