Jfinal 自带分页问题

下面是报错信息:

image.png

把SQL拿到去运行 出来两条count数据

自己手动用mysql   LIMIT 分页  丢到Jfinal 里查询 报如下错误

Caused by: java.sql.SQLException: sql injection violation, syntax error: not support token:STAR : SELECT * FROM(

SELECT

round(

sum(

CASE cause

WHEN '联系方式无效' THEN

1

WHEN '客户明确无需求' THEN

1

ELSE

0

END

) / + COUNT(*) * 100,

2

) AS efficient,

u.*,@rownum :=@rownum + 1 AS rownum

FROM

(SELECT @rownum := 0) r,

ws_information i

LEFT JOIN ws_users u ON u.id = i.promulgatorid

GROUP BY

i.promulgatorid

ORDER BY efficient DESC

) y LIMIT 0,10 



评论区

lyh061619

2017-11-24 14:28

JFinal 分页是 select与from是分开的,注意下你的用法,正常是这样使用的,如: return menuDao.paginate(num, size, select.toString(), sql.toString());

lyh061619

2017-11-24 14:36

一般出现错误,基本上是自己在写sql没看清楚一时手快造成的,建议你细心检查下。

JFinal

2017-11-24 16:38

jfinal 仅仅是将 sql 与其参数直接扔给了 JDBC 而已,所以先要确保你的 sql 与参数是JDBC 接受的

此外,异常出现了 sql inject 这样的信息,很可能是你用的 druid 将你的 sql 当成有 sql 注入的危险,需要查看 druid 官方文档,找到相关配置放开对此类 sql 的限制

热门反馈

扫码入社