#和$符号的区别
#{ }表示一个占位符号, 可以实现preparedStatement向占位符中设置值,自动加粗样式进行java类型和jdbc类型转换。#{}可以有效防止sql注入。#{}可以接收简单类型值或pojo属性值。 如果parameterType传输单个简单类型值,#{}括号中可以是value或其它名称。
$ { } 表示拼接sql串,通过${}可以将parameterType 传入的内容拼接在sql中且不进行jdbc类型转换, 可以接收简单类型值或pojo属性值,如果parameterType传输单个简单类型值,{}可以接收简单类型值或pojo属性值,如果parameterType传输单个简单类型值,可以接收简单类型值或pojo属性值,如果parameterType传输单个简单类型值,{}括号中只能是value。
注意:对于order by 后面的排序规则,表名等数据库对象名,如果要传入,也应该使用${……}