我对编程颇为陌生,但我正在为后台应用程序制作屏幕。此应用程序的目标是您可以选择电台名称,并且当您按下检查状态时,将显示该电台上锁柜的所有状态。但是我遇到的问题是stats setString不能用于某种奇怪的原因。我已经尝试了几乎所有的东西,我也问过很多人,如果他们能够发现问题,即使是以java为工作的人,但即使他们找不到它。
我在这里可以看到的唯一的事情是,没有被承认。
我第一次试图直接将Amersfoort对接到sql代码,并且它工作正常。
经过一些测试后,我尝试使用没有连接的普通查询,但没有奏效。
之后,我尝试在我的代码的其余部分找到可能的错误,但我找不到任何错误。
所以我的问题是我在这里做错了什么?
(小声明我尝试了更多,但我认为它是无关紧要的)
关于输出屏幕的一些解释:
阿克库拉姆是我在测试过程中选择的,但无关紧要,因为目前我没有使用它。
代码 :
public void fetch() {
try {
databaseConnection();
String select = stationSelect.getSelectedItem().toString();
System.out.println(select);
String sql = "SELECT l.id, s.station_id, locker_number, locker_code, occupied FROM lockers l JOIN stations s ON l.station_id = s.id WHERE name = ?";
System.out.println(1+ ": "+ sql);
pstmt = connection.prepareStatement(sql);
pstmt.setString(1, "Amersfoort");
System.out.println(2+ ": " + sql);
resultSet = pstmt.executeQuery(sql);
System.out.println(3 + ": " + sql);
Table.setModel(DbUtils.resultSetToTableModel(resultSet));
} catch (Exception e) {
System.out.println(e);
JOptionPane.showMessageDialog(null, e);
}
}输出:
Akkrum的
SELECT l.id,s.station_id,locker_number,locker_code,占用FROM储物柜l JOIN站点ON l.station_id = s.id WHERE name =?
SELECT l.id,s.station_id,locker_number,locker_code,占用FROM储物柜l JOIN站点ON l.station_id = s.id WHERE name =?
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to
your MySQL server version for the right syntax to use near '?' at line
1