Dao层写数据库语句使用IN遇到的问题

Dao层语句如下:
@Select("SELECT COUNT( * ) FROM (( `comp` `c` LEFT JOIN `comp_value` `cv` ON ( ( `c`.`comp_id` = `cv`.`comp_id` ) ) )" +
"LEFT JOIN `listing` `l` ON ( ( `cv`.`listing_no` = `l`.`listing_no` ) ) ) " +
"WHERE( `c`.`comp_id` IN ( SELECT `comp_id` FROM `job_comp` WHERE job_comp.job_id IN (${jobIds})))")
int countCompListing2(@Param("jobIds") String jobIds);

(jobIds是一个用“,”分隔的字符串)

标红的位置,如果使用正常的传参形式#{jobIds}会只取字符串中第一个数字,后面的都不会取到,所以使用了"$"这种格式,查到用美元符号会容易导致sql注入攻击问题,暂时还不太明白会怎么攻击,以后有好的办法再进行修改

 

你可能感兴趣的:(Dao层写数据库语句使用IN遇到的问题)