如何基于2个参数查询SQLite表?

问题描述 投票:0回答:1

我正在尝试基于等于jList和jtextfield值的2列查询我的SQLite表。我已经设置了一个ListSelectionListener,以等待从列表中选择哪个“日期”。我知道我的代码对于select语句是错误的,但是我找不到其他可以与之相关的在线帮助。任何帮助将是巨大的!谢谢

这里是一个基本示例:

listJobCostDates = new JList();
        listJobCostDates.addListSelectionListener(new ListSelectionListener() {
            public void valueChanged(ListSelectionEvent evt) {
                String jobNumber = txtJobNumber.getText().toString();
                Object dateNumber = listJobCostDates.getSelectedValue();

                String sql = "SELECT * FROM JOBCOSTS where Job_Number,Date='" +jobNumber+"'" AND Date =+dateNumber+"'"  ;

                try {

                    pst=conn.prepareStatement(sql);
                    rs = pst.executeQuery();
                    while(rs.next()) {
                    tblDayJobCosts.setModel(DbUtils.resultSetToTableModel(rs));

                    }

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

                }
            }
        });
java sqlite
1个回答
0
投票

您的条件不正确的地方

 String sql = "SELECT * FROM JOBCOSTS where Job_Number = '" +jobNumber+ "' and Date ='"+dateNumber+"'"  

但是上面容易进行sql注入,请改用Prepared Statements

 pst=conn.prepareStatement("SELECT * FROM JOBCOSTS where Job_Number = ? and Date = ?);
 pst.setString(1, jobNumber);
 pst.setString(2, dateNumber);
© www.soinside.com 2019 - 2024. All rights reserved.