mybatis sql 操作符$和#

来源:互联网 发布:高温除甲醛 知乎 编辑:程序博客网 时间:2024/05/22 06:23

orm框架实质上是对java sql的上层封装,所以对于sql语句的处理也分为两种方式:statement和preparestatement。

mybatis中的包含$和#操作符的sql语句分别对应statement和preparestatement。

关于#/preparestatement

1.sql语句创建预处理sql,#{value}作为占位符出现。

2.预处理语句一般会缓存,多次执行相同sql逻辑(使用不同占位符数据)时效率较优。

3.由于事先将sql编译为低层指令,可以预防sql注入

关于$/statement

1.嗯,就是statement,小心使用,执行前需对${}内参数做sql注入判断和处理。

2.一般会用在参数化数据库名(分库)、参数化表名(分表)和排序order

例如select * from ${tableName} order by ${columnName} 

0 0