Mybatis的mapper檔案中${ }和#{ }的區別
阿新 • • 發佈:2018-11-28
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="小明";