Ich stehe vor einem sehr seltsamen Problem. Ich versuche einen Bericht in DynamicReports API zu generieren. Der Bericht wird ohne die Klausel WHERE generiert, wird aber nicht mit WHERE Klausel generiert. Die Datenbank ist MySQL. Jede Hilfe wird sehr geschätzt. Hier ist der Code:DynamicReports erstellt keinen Bericht mit Where-Klausel am Datum
Service-Klasse:
public class ReportSevice {
public void createReport (String reportDate) {
System.out.println(reportDate);
String sql_statement = null;
Connection connection = null;
try {
Class.forName("com.mysql.jdbc.Driver");
connection = DriverManager.getConnection(
"jdbc:mysql://localhost:3306/world","root", "password");
sql_statement = "SELECT id, fName, lName, pickUpDate FROM reservations_db WHERE pickUpDate = " + reportDate;
} catch (SQLException e) {
e.printStackTrace();
return;
} catch (ClassNotFoundException e) {
e.printStackTrace();
return;
} catch (Exception e) {
e.printStackTrace();
}
JasperReportBuilder report = DynamicReports.report();
report
.columns(
Columns.column("Customer Id", "id", DataTypes.integerType()),
Columns.column("First Name", "fName", DataTypes.stringType()),
Columns.column("Last Name", "lName", DataTypes.stringType()),
Columns.column("Date", "pickUpDate", DataTypes.stringType()))
.title(Components.text("********Report By Date********")
.setHorizontalTextAlignment(HorizontalTextAlignment.CENTER))
.pageFooter(Components.pageXofY())
.setDataSource(sql_statement, connection);
try {
report.show();
} catch (DRException e) {
e.printStackTrace();
}
}
}
Mögliche Duplikat [Filter nach Datetime MYSQL Formating] (http://stackoverflow.com/questions/16657202/filter-by-datetime-mysql-formating) –
Haben Sie die Abfrage mit Hilfe eines MySQL-Clients (zB MySQL Workbench) überprüft? Was ist ein Typ von * pickUpDate * Spalte in DB? –
@AlexK, der Typ von PickUpDate ist String – JoeZ