eg:select id,name,age from student where id =#{id},當前端把id值1,傳入到後臺的時候,就至關於 select id,name,age from student where id ='1'.前端
eg:select id,name,age from student where id =${id},當前端把id值1,傳入到後臺的時候,就至關於 select id,name,age from student where id = 1.sql
我以爲#與的區別最大在於:#{} 傳入值時,sql解析時,參數是帶引號的,而
的區別最大在於:#{} 傳入值時,sql解析時,參數是帶引號的,而
{}穿入值,sql解析時,參數是不帶引號的。mybatis
在mybatis中的$與#都是在sql中動態的傳入參數。 eg:select id,name,age from student where name=#{name} 這個name是動態的,可變的。當你傳入什麼樣的值,就會根據你傳入的值執行sql語句。
#{}: 解析爲一個 JDBC 預編譯語句(prepared statement)的參數標記符,一個 #{ } 被解析爲一個參數佔位符 。
${}: 僅僅爲一個純碎的 string 替換,在動態 SQL 解析階段將會進行變量替換。
name-->cy
eg: select id,name,age from student where name=#{name} -- name='cy'
select id,name,age from student where name=${name} -- name=cyide