Java 将JDateChooser与数据库一起使用时出现问题
我有一个机场项目。我有一个gui,我想在其中搜索某些航班。在这个gui中,我有一个JDateChooser(因为我想在数据库中找到某个航班)。在数据库中,我有一个名为date_dep的列,它是一种数据类型。我应该提到,以前我必须创建航班(在数据库中输入gui中的航班信息),当我输入从JDateChooser获得的日期到数据库时,我没有遇到任何问题。现在的问题是,当我尝试搜索某个航班时,会出现以下错误: org.postgresql.util.PSQLException:错误:语法错误位于或接近“Apr” 我想“Apr”是从4月开始的,因为我正在搜索4月24日的航班。所以我想我的问题在于格式,但我尝试了很多东西却没有任何运气。 你知道会是什么吗?提前谢谢。如果有帮助,我可以发布更多代码 dateCh是我的Jdatechooser的名称 试一试{ 在修复我的代码之后Java 将JDateChooser与数据库一起使用时出现问题,java,database,postgresql,date-formatting,jdatechooser,Java,Database,Postgresql,Date Formatting,Jdatechooser,我有一个机场项目。我有一个gui,我想在其中搜索某些航班。在这个gui中,我有一个JDateChooser(因为我想在数据库中找到某个航班)。在数据库中,我有一个名为date_dep的列,它是一种数据类型。我应该提到,以前我必须创建航班(在数据库中输入gui中的航班信息),当我输入从JDateChooser获得的日期到数据库时,我没有遇到任何问题。现在的问题是,当我尝试搜索某个航班时,会出现以下错误: org.postgresql.util.PSQLException:错误:语法错误位于或接近“
pst = con.prepareStatement("SELECT * FROM flight WHERE route_id=? AND date_dep=?");
rs = pst.executeQuery();
pst.setInt(1, routeid);
pst.setDate(2, sqlDate);
我现在发现这个错误。我在网上发现postgres有一些og错误,但我不知道如何修复它
org.postgresql.util.PSQLException:未为参数1指定值
我的错,我在设置值之前执行了查询。我现在可以工作了。非常感谢您检查文档,了解如何正确使用它
您应该按如下方式编写查询-
pst = con.prepareStatement("SELECT * FROM flight WHERE route_id= ? AND date_dep= ?");
//pst.setXXX(1, routed); just choose the appropriate type for the route_id column
pst.setDate(2, dateCh.getDate());
并设置如下参数-
pst = con.prepareStatement("SELECT * FROM flight WHERE route_id= ? AND date_dep= ?");
//pst.setXXX(1, routed); just choose the appropriate type for the route_id column
pst.setDate(2, dateCh.getDate());
请注意,当前您甚至没有将参数括在引号中。正确编写的查询类似于
…其中col1='val1'和col2='val2'…
当您执行类似于…”和date_dep=“+dateCh.getDate()…
”的操作时,这相当于执行…”和date_dep=“+dateCh.getDate().toString()…
”。这最终会产生类似于…和date_dep=Apr…
的内容: