Springboot集成Druid,sql報錯 Error querying database. Cause: java.sql.SQLException:

項目集成了阿里的 Druid 數據庫連接池,其中一句模糊查詢報瞭如下錯誤:
在這裏插入圖片描述
重點在這裏:
Error querying database. Cause: java.sql.SQLException: sql injection violation, syntax error: syntax error, error in :‘name like ‘%’ ? ‘%’) tmp_count’, expect RPAREN, actual QUES pos 72, line 1, column 71, token QUES : select count(0) from (SELECT * FROM ddr_role where rolename like ‘%’ ? ‘%’) tmp_count

問題大致是因爲項目集成了Druid,所以SQL在模糊查詢那部分會出現SQL注入的問題。

報錯SQL:

<select id="findRoleList" resultMap="role">
        SELECT * FROM `ddr_role` where rolename like '%',#{rootname},'%'
</select>

修改後的SQL:

<select id="findRoleList" resultMap="role">
        SELECT * FROM `ddr_role` where rolename like concat('%',#{rootname,jdbcType=VARCHAR},'%')
</select>

希望對大家有幫助吖😁~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章