MyBatis中#{}占位符与${}拼接符的用法说明
在传统的JDBC编程中,占位符用“?”来标识,然后在加载SQL之前按照“?”而“#{}”在MyBatis中也代表一种占位符,该符号接受输入参数,在大括号中编写参数名称来接受对应参数。例如在模糊查询的时候,就需要在查询条件的两侧拼接两个“%”字符串,这个时候如果使用“#{}”占位符是不行的。但是要注意的是,使用“${}”拼接的SQL语句,会引起SQL注入,所以一般不建议使用“${}”。“${}”接受输入参数的类型可以是简单类型、普通JavaBean或者HashMap。如果接受的是JavaBean,它会通过OGNL读取对象中的属性值。另外,在MyBatis 3.4.2之后,还可以在“${}”拼接符中设置一个默认值,格式如下:
用户评论