Mybatis中#与$的区别
Mybatis中SQL语句中传值存在两种方式#{},${}
二者都可以做到参数传递 但是存在着很大的区别
1.以#的方式传参数 底层使用的是jdbc中的prepareStatement 使用的是以‘?’ 为占位符的SQL语句
insert into student (id,name) values (?,?)
这样做可以提高运行的效率
2.#方式可以避免SQL注入的问题
3.$不使用占位符 使用的是字符串拼接 底层使用的jdbc中学到的statement执行SQL语句 效率低
4.$存在SQL注入问题
5.$可以替换列名或者表名