Java 通过jsp将参数传递给ireport
我用iReport开发了一个报告。该报告应该在几个不同的数据库中运行 在报告中,我放置了几个参数,其中一些包含日期格式。当我使用Java 通过jsp将参数传递给ireport,java,sql,oracle,jasper-reports,Java,Sql,Oracle,Jasper Reports,我用iReport开发了一个报告。该报告应该在几个不同的数据库中运行 在报告中,我放置了几个参数,其中一些包含日期格式。当我使用to\u date()时,一开始一切都很顺利 但是现在这个方法似乎不能在Postgres上运行,所以我试着不使用to\u date() 我只是把它当作 ex:date=$p{date} 我把初始值改为 新的SimpleDataFormat(“dd/MM/yyyy”).parse(“01/01/2011”) 编译时没有错误,但当我运行应用程序时,它似乎是由以下原因引起的错
to\u date()
时,一开始一切都很顺利
但是现在这个方法似乎不能在Postgres上运行,所以我试着不使用to\u date()
我只是把它当作
ex:date=$p{date}
我把初始值改为
新的SimpleDataFormat(“dd/MM/yyyy”).parse(“01/01/2011”)
编译时没有错误,但当我运行应用程序时,它似乎是由以下原因引起的错误:
java.io.StreamCorruptedException:无效的流头:3C68746D。
后来我尝试将参数类型更改为String
(从java.util.Date
)并将“
作为初始值
它运行良好,除了Oracle数据库之外。有人能帮我吗?首先,我想您已经意识到,当您执行新的SimpleDataFormat(“dd/MM/yyyy”).parse(“01/01/2011”)时,您正在尝试在日期字段中放置字符串值,对吗
我不知道我是否理解正确,但我猜数据库中的字段是Date,因此必须使用日期,而不是字符串。最终的格式转换(将产生一个字符串)必须在您的报表模板或您正在使用的任何内容中。但数据库将向API返回日期。将字符串格式和“DD/MM/YYYY”格式的日期从代码传递到i-report 在i-report中,以这种格式编写查询(更改日期比较格式以适应输入):
to_date('fieldnameofDB','DD/MM/yyyyy')=$p{nameOfParameterPassed}
只需更改接受参数的方式,将参数的格式设置为字符串。您好,我不知道您的问题是否正确。如果要将oracle日期字段转换为字符<代码>从mytable中选择以字符(ora_datefield,'DD/MM/YYYY')作为mydate代码>正确,但我想作为参数执行。我想使用相同的查询和报告模板,可以在mysql、oracle和postgres三种不同的数据库中成功运行。“最终的格式转换(将产生字符串)必须在您的报告模板中或您正在使用的任何内容中。但数据库将向您的API返回日期。”对不起,我不理解这一部分。你是说新的SimpleDataFormat(“dd/MM/yyyy”)。解析(“01/01/2011”)将输出字符串类型?谢谢你的关心。我的意思是你将发送和接收日期到数据库。流将包含日期,而不是字符串。最终的格式转换(将日期转换为字符串)将在您的报表api中执行,不再与数据库通信。这意味着当我使用java.util.date()作为参数,使用新的SimpleDataFormat(“dd/MM/yyyy”).parse(“01/01/2011”)作为初始值时,它应该可以了吧?但为什么当我运行应用程序时它会发送错误?此错误:java.io.StreamCorruptedException:无效的流头:3C68746D。我正在使用Oracle数据库。请发布整个堆栈跟踪和一段更清晰的代码。