例如:和資料庫進行互動,使用#{}
<insertid="insertemployee"parametertype="employee"
>
insert into employee (name,age,birthday,salary) values(#,#,#,#)
insert
>
例如:欄位名不可以加引號,只能使用${}
<selectid="orderbycolumn"resultmap="empresultmap"
>
select id,name,age,birthday,salary,password from employee order by $ desc
select
>
${}:當傳入的引數作為sql執行的一部分的時候必須使用${};
例如orderby id(這個id是欄位名,只能使用$
#{}:當傳入的引數時同資料庫進行互動的時候,使用#{}.
preparestatement的執行流程:
將sql語句傳送給資料庫之後
1.首先資料庫會檢查sql語句中的關鍵字是否存在,是否正確(如select,where等關鍵字)
2.如果正確,資料庫會檢查sql語句中的表名列名是否存在,是否正確
3.如果正確,資料庫會生成乙個預編譯函式
4.傳入引數時,執行sql語句
對於批量處理同構sql語句的時候,會極大的提公升效率,因為前三步只需執行一次!
${}這種引數相當於在第二步檢查的表名,列名這種作為引數
#{}這種引數相當於在第四步動態傳入的引數
簡單的判斷:傳入的引數在sql中是否能夠加上單引號
mybatis 中 與 的區別
mybatis ibatis中 和 的區別 1.將傳入的資料都當成乙個字串,會對自動傳入的資料加乙個雙引號。如 order by user id 如果傳入的值是111,那麼解析成sql時的值為order by 111 如果傳入的值是id,則解析成的sql為order by id 2.將傳入的資料直接...
mybatis 中 與 的區別
mybatis將 解釋為jdbc prepared statement 的乙個 引數標記 而將 解釋為 字串替換 1.將傳入的資料都當成乙個字串,會對自動傳入的資料加乙個雙引號。如 order by user id 如果傳入的值是111,那麼解析成sql時的值為order by 111 如果傳入的值...
mybatis 中 與 的區別
mybatis ibatis中 和 的區別 1.將傳入的資料都當成乙個字串,會對自動傳入的資料加乙個雙引號。如 order by user id 如果傳入的值是111,那麼解析成sql時的值為order by 111 如果傳入的值是id,則解析成的sql為order by id 2.將傳入的資料直接...