私は非常に奇妙な問題に直面しています。 DynamicReports APIでレポートを生成しようとしています。レポートはWHERE句なしで生成されていますが、WHERE句で生成されていません。データベースはMySQLです。どんな助けも大歓迎です。ここでは、コードは次のようになります。DynamicReportsが日付のwhere句でレポートを生成しない
サービスクラス:
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();
}
}
}
[日時MYSQLの整形によるフィルタ]の可能な重複(http://stackoverflow.com/questions/16657202/filter-by-datetime-mysql-formating ) –
一部のMySQLクライアント(MySQL Workbenchなど)のヘルプを使用してクエリをチェックしましたか? DBの* pickUpDate *列の型は何ですか? –
@AlexK、pickUpDateの型は文字列 – JoeZ