【问题标题】:How to query SQLite database based on textfield entry with "0's"?如何根据带有“0”的文本字段条目查询 SQLite 数据库?
【发布时间】:2020-02-18 01:51:53
【问题描述】:

我正在创建一个可以存储我的工作编号记录的小型数据库。我想以 2 个零 (00) 开始每个作业编号,然后将作业编号放在后面。比如这个“001-2019”。当我去查询数据库时,它不起作用。但是,如果我摆脱零并摆脱任何特殊字符,它就可以正常工作。如何使用零和特殊字符查询数据库?

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

                }
            }
        });

【问题讨论】:

标签: java sqlite swing jtextfield


【解决方案1】:

首先尝试使用parametarized query,因为您已经在使用Prepared statements

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

其次,您的jobNumber 是否应该在字符串中,这样您的前导零就不会被截断。

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

        }
    }
});

【讨论】:

  • 太棒了,问题解决了。但是我可以通过调整为 = '" +jobNumber+"'"; 来实现正常的功能;你能解释一下为什么它只通过添加一个单引号和一个双引号就可以工作吗?我真的很震惊它是如此简单,仍然感到困惑。再次感谢。
猜你喜欢
  • 1970-01-01
  • 2017-11-21
  • 1970-01-01
  • 1970-01-01
  • 2021-02-19
  • 2019-07-29
  • 1970-01-01
  • 1970-01-01
  • 2019-05-21
相关资源
最近更新 更多