gpt4 book ai didi

java - 在 jasper 中将存储过程设置为 SQL 语句

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:34:33 24 4
gpt4 key购买 nike

我有这个简单的代码:

JasperDesign jDes = JRXmlLoader.load("jasperfile.jrxml");
String sql = "Select * From table WHere address like 'St. Vincents College%'";
JRDesignQuery newQuery = new JRDesignQuery();
newQuery.setText(sql);
jDes.setQuery(newQuery);
JasperReport jRep = JasperCompileManager.compileReport(jDes);
JasperPrint jPrint = JasperFillManager.fillReport(jasperReport,null,conn);
JasperViewer.viewReport(jPrint);

基本上,打印的就是报告。我想要的不是 SELECT... 查询,我想使用一个存储过程,比方说:

ProcedureName:    GenerateReportByAddress
Parameter : personName

如何在 jasper 中使用 CallableStatement

CallableStatement cstmt = con.prepareCall("{call GenerateReportByAddress(?)}");
cstmt.setString(1, "secret");

原因是:

- to make query of application encapsulated by calling only stored procedure
- to avoid SQL Injection. (because some address contains Single Quote)

最佳答案

Jasper Reports 不支持存储过程。临时表是正确的方法。有关详细信息,请参阅此博客条目:

How To Call Stored Procedures From JasperReports

或者,您可以将 Jasper Reports 绑定(bind)到不同的数据源。看这里:

Java beans as Jasper Reports data source using JRBeanCollectionDataSource

关于java - 在 jasper 中将存储过程设置为 SQL 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9569252/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com