${}哪边都能使用,只是存在sql注入风险,相当于直接拼接字符串,不对参数做任何处理。
#{}会进行预编译,对参数进行处理,防止注入。
对于SELECT id,name,age FROM student WHERE name = 参数;这样的语句如果传入参数anything’ OR ‘x’='x
本文探讨了MyBatis中#{}和${}的使用场景。#{}提供预编译和防SQL注入的功能,而${}虽然易导致SQL注入,但不会对字符串参数加引,适合于特殊场景如表名动态查询。当使用#{}传入字符串参数时,可能会因额外的引号导致SQL查询错误。
${}哪边都能使用,只是存在sql注入风险,相当于直接拼接字符串,不对参数做任何处理。
#{}会进行预编译,对参数进行处理,防止注入。
对于SELECT id,name,age FROM student WHERE name = 参数;这样的语句如果传入参数anything’ OR ‘x’='x
1803