mybatis 中通配符有 #{}和${}
#{}写法:
select * from Student where SID = #{id}
打印的日志内容底层显示:
Preparing: select * from Student where SID = ?
Parameters: 1
#{}写法是在SQL上通过?占位占位,将参数和sql分别传递给数据库,相当于JDBC编程PreateStatement
${}写法:
select * from Student where SID = ${id}
打印日志问题:
Preparing: select * from Student where SID = 1
Parameters:
${}写法直接将参数拼接到sql语句上,相当于jdbc中的Statement操作
使用:
${}会有SQL注入的问题,#{}采用预编译机制先对sql编译,无误后传递给数据库
一般推荐使用#{}写法