我正在尝试基于等于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);
}
}
});
您的条件不正确的地方
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);