Mybatis的mapper檔案中 和 的區別

2022-09-05 00:36:13 字數 577 閱讀 9763

select * from employee where name=#

select * from employee order by $

從上面的內容我們可以比較清楚的看到,一般#{}用於傳遞查詢的引數,一般用於從dao層傳遞乙個string或者其他的引數過來,mybatis對這個引數會進行加引號的操作,將引數轉變為乙個字串。

比如,這邊我們想根據姓名查詢某個人的資訊,我們會從dao傳乙個引數,比如jack過來,mybatis生成對應的sql為:

select * from employee where name="jack"
而$則不同,我們一般用於order by的後面。此時mybatis對這個引數不會進行任何的處理,直接生成sql語句。例如,此處我們傳入salary作為引數,傳入第二個中,此時,mybatis生成的sql語句為:

select * from employee order by salary
可以看到,mybatis對其沒有做任何的處理。

這是乙個比較小的知識點,但是也容易為遺忘,所以記錄在此。

Mybatis原始碼分析之Mapper檔案解析

感覺csdn對markdown的支援不夠友好,總是伴隨各種問題,很惱火!public void parse parsependingresultmaps parsependingchacherefs parsependingstatements 上面的這行 是提取部分來解析 private void...

mybatis的mapper引數傳遞

簡單引數傳遞是指 actor selectactorbyid long id select id selectactorbyid resulttype canger.study.chapter04.bean.actor select actor id as id,first name as firs...

mybatis中的mapper例項化

很多人用過mybatis,或者使用過springdata,那麼和傳統的jdbc相比,差別在 呢?傳統的dao層,介面需要有實現,需要連線發出sql,需要接收返回值,但是mybatis只需要實現介面,而不需要實現類,而且神奇的是,可以通過spring的註解,直接把介面的實現物件給取出,大家都知道,介面...