sql中 ${}和#{}的区别

来源:互联网 发布:扑克记忆训练软件 编辑:程序博客网 时间:2024/06/16 05:56
    <span style="font-size:18px;">delete from      ups_role_permission_dataparams      where role_id = #{roleId,jdbcType=INTEGER}</span>  

在这里用到了#{},使用#时:

1、用来传入参数,sql在解析的时候会加上” “,当成字符串来解析 ,如这里 role_id = “roleid”;

2、#{}能够很大程度上防止sql注入;

延伸:

1、用sqlroleid={roleId,jdbcType=INTEGER},那么sql在解析的时候值为roleId = roleId,执行时会报错;

2、${}方式无法防止sql注入;

3、$一般用入传入数据库对象,比如数据库表名;

4、能用#{}时尽量用#{};

注意:

mybaties排序时使用order by 动态参数时需要注意,使用${}而不用#{};

原创粉丝点击