問題:
按日期展示前七天每天的數量。
本地查詢陳述句:
SELECT
count( * ) AS num,
to_char(to_date(create_time,'yyyy-mm-dd hh24:mi:ss'),'yyyy-mm-dd') as create_time
FROM
表名
WHERE
create_time <= '2020-11-08 23:59:59' AND create_time >= '2020-10-31 00:00:00'
GROUP BY
to_char(to_date(create_time,'yyyy-mm-dd hh24:mi:ss'),'yyyy-mm-dd')
ORDER BY
to_char(to_date(create_time,'yyyy-mm-dd hh24:mi:ss'),'yyyy-mm-dd') DESC
服務器上:
String sql="SELECT count(*) AS num,to_char(to_date(create_time,'yyyy-mm-dd hh24:mi:ss'),'yyyy-mm-dd') as create_time FROM "+ Tables.表名+
" WHERE create_time <= :todayDate AND create_time >= :seventhDate " +
"GROUP BY to_char(to_date(create_time,'yyyy-mm-dd hh24:mi:ss'),'yyyy-mm-dd') " +
"ORDER BY to_char(to_date(create_time,'yyyy-mm-dd hh24:mi:ss'),'yyyy-mm-dd') DESC ";
Query query = createQuery(sql);
query.addParameter("seventhDate", seventhDate);
query.addParameter("todayDate", todayDate);
說明:
加號是換行了;兩個時間日期是后臺生成,不是前端傳入。
但服務器報: 使用的預編譯sql可能有注入風險。
疑問:
我這個也是相當于有占位符了,不是 "select * from 表名 username= "+username +" password= "+ password;
不明白為什么還會報sql注入。
求大佬解惑。萬分感謝。
uj5u.com熱心網友回復:
dd') as create_time FROM "+ Tables.表名+應該是這句,表名是拼接進來的。
uj5u.com熱心網友回復:
公司所有表名都是這種寫法。我在想是不是單引號的問題。但oracle不認雙引號,陷入死胡同了。
uj5u.com熱心網友回復:
用動態SQLuj5u.com熱心網友回復:
但服務器報: 使用的預編譯sql可能有注入風險。這個錯誤,應該是你們服務(或服務器上的某個程式)有一套規則,正好命中了,最好把這套規則要過來,參考一下。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/212975.html
標籤:開發
