sql 模版

select * from #para(0) where formKey= #para(1) and objectID = #para(2)



如上  参数0 想要进行 动态赋值!    动态查询不同的表    应该怎么写

评论区

JFinal

2019-09-20 10:22

#para 指令所在之处永远是生成一个问号占位字符,所以你上面的代码生成的sql 如下:
select * from ? where formKey= ? and objectID = ?

根据 JDBC 规则,问号占位字符只能出现在 where 子句中, 而你的 sql 的 form 后面居然也出现了问号占位字符, 必然出错

改进的方向是使用输出指令,例如:
select * from #(tableName) where formKey= #para(1) and objectID = #para(2)

注意看上面的 #(tableName) 的用法

如果一定要用下标,改成这样:
select * from #(_PARA_ARRAY_[0]) where formKey= #para(1) and objectID = #para(2)

其中的 _PARA_ARRAY_ 指向了你传的数组变量,在文档中有说明:
https://www.jfinal.com/doc/5-13

xhcjz

2019-09-20 10:27

好的谢谢

xhcjz

2019-09-20 10:42

已经找到方法,谢谢

chcode

2019-09-20 13:46

jdbc 表名不能用?号

热门反馈

扫码入社