Mybatis的mapper文件中${ }和#{ }的区别

dao层实体:

User user = new User();

user.setName("小明");

mapper文件sql语句:

1、使用#{}示例:

SELECT * FROM user WHERE name=#{name};

编译后的sql为:SELECT * FROM user WHERE name='小明';

2、使用${}示例:

SELECT * FROM user WHERE name=${name};

编译后的sql为:SELECT * FROM user WHERE name=小明;

总结:#{} 会对传过来的参数做 加引号处理,一般用于 values获取值。

          ${} 不会对传过来的参数做处理,一般用于表名的分表标识。

          综合案例:

          user.setName("小明");

          user.setDepNo("001");

          SELECT * FROM user_${depNo} WHERE name=#{name,jdbcType=VARCHAR};

         编译后sql: SELECT * FROM user_001 WHERE name="小明";

猜你喜欢

转载自blog.csdn.net/weixin_42315600/article/details/84143475