gpt4 book ai didi

java - 将 JDateChooser 与数据库一起使用时出现问题

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

我有一个机场项目。我有一个图形用户界面,我想在其中搜索某些航类。在这个图形用户界面中,我有一个 JDateChooser(因为我想在我的数据库中找到某个航类)。在数据库中,我有一个名为 date_dep 的列,它是一种数据类型。我应该提到的是,以前我必须创建航类(从 GUI 输入有关航类的信息到数据库中),当我将从 JDateChooser 获得的日期输入数据库时​​,我没有遇到任何问题。现在的问题是,当我尝试搜索某个航类时,我收到此错误:

org.postgresql.util.PSQLException: ERROR: syntax error at or near "Apr"

我认为“Apr”是从 4 月开始的,因为我正在搜索 4 月 24 日的航类。所以我想我的问题出在格式上,但我尝试了很多东西但没有运气。你知道它可能是什么吗?提前致谢。如果有帮助的话我可以发布更多代码。

dateCh 是我的 Jdatechooser 的名称。

尝试{

        con = DriverManager.getConnection(url, user, password);
pst = con.prepareStatement("SELECT * FROM flight WHERE route_id="+routeid+ "AND date_dep="+dateCh.getDate());
rs = pst.executeQuery();

// erase everything from the list before refreshing it
flightlist.clear();
while (rs.next()) {
flightlist.addElement(rs.getInt(1) + " : Flight ID" + " | "
+ "Route ID: " + rs.getInt(2) + " | "+"Date: "+ rs.getDate(4)+ " | "+"Time: "+rs.getTime(5)+ " | "
+ "Plane ID "+rs.getInt(3)+ " | "+"Economy seats: "+rs.getInt(6)+" | "+"Business seats: "+rs.getInt(7)+" | "
+ "First class seats: "+rs.getInt(8)+"\n");
}

} catch (SQLException e) {
System.out.println("Connection failed!");
e.printStackTrace();
return;
}

修复我的代码后

pst = con.prepareStatement("SELECT * FROM flight WHERE route_id=? AND date_dep=?");
rs = pst.executeQuery();
pst.setInt(1, routeid);
pst.setDate(2, sqlDate);

我现在收到此错误。我在网上发现 postgres 存在某种错误,但我不知道如何修复它。

org.postgresql.util.PSQLException:没有为参数 1 指定值

我的错,我在设置值之前执行了查询。我现在工作了。非常感谢

最佳答案

一些事情:

  1. 不要附加字符串以将参数放入查询中。在查询中放置占位符,然后绑定(bind)参数。

  2. 执行您需要执行的任何操作,从日期选择器构造 Date 对象,然后将其绑定(bind)到适当的查询占位符(请参阅 #1)

  3. 请注意日期的时间部分。如果您只关心日期而不关心时间,请始终将日期的时间部分设置为 0。如果您存储日期和时间但仅按日期查询,则必须查询日期更大的航类早于前一天的午夜且晚于相关日期的午夜。

关于java - 将 JDateChooser 与数据库一起使用时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23447694/

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