发新话题
打印

关于在jdbc数据集中使用参数的问题?

语法错误,可能是由于字符型当成数值型,或者相反
举例来说,如下面传入一个参数 myid ,且值为 "123"

在数据库表里, 你的 id 是 integer 类型, 则

select * from xx where id=${myid}    -> ... where id=123   正确
select * from xx where id='${myid}'  ->  ... where id='123'  错误

如果你的id是 varchar,则, :
select * from xx where id='${myid}'   ->   where id='123'    正确
select * from xx where id=${myid}  ->    where id=123    错误

请仔细体会.

TOP

谢谢管理员的答复,但是我按照您的提示,仍然没有得出想要的结果。为了便于说明,也便于您测试,我用JOR自带的demo数据库做了点测试:

1. 使用int类型的参数


然后添加DataSet


点击预览后,得到如下警告,貌似参数没有被解析出来?



2. 使用String类型参数


如果在SQL直接查询,可以得到正常结果


但如果像管理员在上贴中说的那样使用参数查询,虽然不会报错,但也得不到任何结果



还请管理员帮忙测试一下。谢谢!

TOP

这里需要说明的是,设计时是不会解析到参数默认值的,换句话说,你在jdbc设计窗口的预览下,是取不到你定义的paramYear,如果你想设计时,预览到数据,请这样:

... where year=${  has(paramYear) ? paramYear : 2002  }

has函数用于判断某个变量是否存在。 这里用到脚本的三元运算.


而在web服务器下,你的paramYear总是存在的

TOP

请各位,不要在短消息里,提问,如果没有特别要保密的东西,因为你的问题,也可能帮助到其他朋友。

TOP

发新话题