【发布时间】:2016-04-24 19:25:55
【问题描述】:
我正在尝试从我的数据库中恢复一个取决于日期 "datJourCchn" 的数据列表;
我没有找到错误在哪里; PS:我将 Date 导入更改为 java.sql.Date 而不是 java.util.Date
这是我的代码:
CoursChangeDaoImpl
@Override
public List<CoursChange> getAllCoursParDate(Date datJourCchn)
{
System.out.println("date------------->" + datJourCchn);
List<CoursChange> coursChanges =new ArrayList<CoursChange>();
Devise devise =new Devise();
Connection conn = null;
String sql=
"SELECT d.LIB_DEV_DEV , d.LIB_SIGL_DEV , c.DAT_JOUR_CCHN , c.COD_ETAT_CCHN , c.MONT_CABA_CCHN , c.MONT_CABC_CCHN , c.MONT_CVBA_CCHN , c.MONT_CVBC_CCHN ,c.TIME_CCHN ,c.ID_COURS_CHANGE FROM COURS_CHANGE c , DEVISE d where c.COD_DEV_DEV=d.COD_DEV_DEV and c.DAT_JOUR_CCHN=?";
System.out.println("date------------->" + datJourCchn);
try
{
conn = dataSource.getConnection();
PreparedStatement ps = conn.prepareStatement(sql);
ps.setDate(1, datJourCchn);
ResultSet rs=ps.executeQuery();
while(rs.next())
{ CoursChange coursChange =new CoursChange();
coursChange.setIdCoursChange(rs.getInt("ID_COURS_CHANGE"));
coursChange.setCodEtatCchn(rs.getString("COD_ETAT_CCHN"));
coursChange.setMontCabaCchn(rs.getFloat("MONT_CABA_CCHN"));
coursChange.setMontCabcCchn(rs.getFloat("MONT_CABC_CCHN"));
coursChange.setMontCvbaCchn(rs.getFloat("MONT_CVBA_CCHN"));
coursChange.setMontCvbcCchn(rs.getFloat("MONT_CVBC_CCHN"));
devise.setLibDevDev(rs.getString("LIB_DEV_DEV"));
devise.setLibSiglDev(rs.getString("LIB_SIGL_DEV"));
coursChange.setDatJourCchn(rs.getDate("DAT_JOUR_CCHN"));
coursChange.setTimeCchn(rs.getString("TIME_CCHN"));
System.out.println(rs.getInt("ID_COURS_CHANGE"));
System.out.println(rs.getString("LIB_DEV_DEV"));
coursChanges.add(coursChange );
}
rs.close();
ps.close();
}
catch(Exception e)
{
throw new RuntimeException(e);
}
finally
{
try
{
conn.close();
}
catch(SQLException e)
{
}
}
return coursChanges;
}
page.xhtml
<p:calendar id="button" value="#{coursChangeCtr.datJourCchn}"
showOn="button" pattern="MM-dd-yy">
</p:calendar>
<p:commandButton value="submit"
action="#{coursChangeCtr.listCoursPreparedStatement()}" update="AjoutTab" />
<p:dataTable value="#{coursChangeCtr.listCoursPreparedStatement()}" var="cours"
id="AjoutTab" emptyMessage="aucune info!!" rows="5"
style="width:1000px;font-size:13px;margin-left: 25px">
错误是:
Cannot convert 17/04/16 00:00 of type class java.util.Date to class java.sql.Date
【问题讨论】:
-
我猜 JDBC 需要
java.util.Date而不是java.sql.Date: docs.oracle.com/javase/7/docs/api/java/sql/… -
一开始,导入都在java.util.Date中;但这不起作用,这就是为什么我将其更改为 java.sql.Date :/
-
和preparedStatement不支持java.util.Date,
-
你能帮帮我吗!!!