gpt4 book ai didi

Java setString() 找不到?

转载 作者:行者123 更新时间:2023-12-02 13:07:27 26 4
gpt4 key购买 nike

我对编程很陌生,但我正在为后台应用程序制作一个屏幕。此应用程序的目标是您可以选择车站名称,当您按检查状态时,会显示该车站上储物柜的所有状态。但我遇到的问题是 setString 由于某些奇怪的原因不起作用。我几乎尝试了所有方法,也问过很多人是否能找到问题,即使是那些以java为工作的人,但即使他们也找不到。

我在这里唯一能看到的是?未被识别。

我首先尝试将 Amersfoort 直接连接到 SQL 代码,结果成功了。

经过一些测试后,我尝试使用不带连接的普通查询,但没有成功。

之后,我尝试在其余代码中查找可能的错误,但没有找到任何错误。

所以我的问题是我在这里做错了什么?

(小免责声明,我尝试了更多,但我认为这是完全不相关的)

关于输出屏幕的一些解释:

Akkrum 是我在测试期间选择的,但无关紧要,因为目前我没有使用它。

代码:

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

输出:

阿克鲁姆

  1. 从储物柜中选择 l.id、s.station_id、locker_number、locker_code、已占用 l JOIN 车站 s ON l.station_id = s.id WHERE name = ?

  2. 从储物柜中选择 l.id、s.station_id、locker_number、locker_code、已占用 l JOIN 车站 s 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

最佳答案

resultSet = pstmt.executeQuery(sql);

错误就在那里。 executeQuery(String) 获取原始 SQL 查询并执行它。相反,您想要执行准备好的查询,因此您只需调用:

resultSet = pstmt.executeQuery();

关于Java setString() 找不到?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44084847/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com