1. 程式人生 > >Mybatis的mapper檔案中${ }和#{ }的區別

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="小明";