我正在创建一个小型数据库,可以存储我的职位编号记录。我想以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);
}
}
});
由于已经在使用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);
}
}
});