mybatis中 與 的區別

2021-10-01 15:43:46 字數 1368 閱讀 6749

例如:和資料庫進行互動,使用#{}

<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.將傳入的資料直接...