我创建了一个使用物化视图的Jasper报告。 我想在报告执行之前每次刷新mv以更新数据。 贾斯珀有什么办法吗? 我尝试使用java scriptlet,但它不能以某种方式工作,报告正在执行,但mv没有刷新。
@Override
public void beforeReportInit() throws JRScriptletException {
try {
CallableStatement stmt = preparePlSqlCall(
"DBMS_MVIEW.REFRESH('MV_CHECK_GRAFIK_KUNDEN','C')");
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
private Connection conn;
private Connection getConnection() throws JRScriptletException {
if (conn == null) {
if (getParameterValue(JRFillParameter.REPORT_CONNECTION) != null) {
conn = (Connection) (getParameterValue(JRFillParameter.REPORT_CONNECTION));
} else {
throw new RuntimeException("Keine Datenbank-Verbindung am Report konfiguriert");
}
}
return conn;
}
protected CallableStatement preparePlSqlCall(String sql) throws JRScriptletException, SQLException {
return getConnection().prepareCall("begin " + sql + "; end;");
}
感谢您的帮助!