Mybatis 之$与#
mybatis的xml文件去写动态sql的话,关于占位符我们有两种写法,截图如下:
Select * from Table_name where Cloumn = ${value}
共同:两者都是动态传参
区别:$纯碎的 string 替换,在动态 SQL 解析阶段将会进行变量替换,也就是传的A 后台解析后 sql中还是A,#解析为一个 JDBC 预编译语句(prepared statement)的参数标记符,也就是个占位符
导致问题:$传参会导致sql注入
走着 走着 就近了,所以不要停止前行!