MyBatis中$与#有什么不同?

MyBatis$#有什么不同?

${}表达式主要用于获取配置文件数据,DAO接口中的参数信息,$出现在映射文件的SQL语句中时创建的不是预编译的SQL,而是字符串的拼接,有可能会导致SQL注入问题.所以一般使用$接收dao参数时,这些参数一般是字段,表名等,例如order by {column}.

#{}表达式主要用户获取DAO中的参数数据,在映射文件SQL语句出现#{}表达式,底层会创建预编译SQL(#{}会替换为?).性能会相对较好.

#{}获取DAO参数数据时,参数必须使用@param注解进行修饰或者使用下标或者参数#{param1}形式.

#{}获取DAO参数数据时,假如参数个数一个有选择的使用@param.

posted @ 2018-10-31 09:45  如影随心~  阅读(188)  评论(0编辑  收藏  举报