mybatis中 和 符號的區別

2021-09-11 06:49:35 字數 831 閱讀 4818

使用#{}意味著使用的預編譯的語句,即在使用jdbc時的preparedstatement時,sql語句中的引數會用?作佔位符,可以防止sql注入。

使用#{}時形成的sql語句,組成sql語句的時候把引數預設為字串,帶有引號,例:

select * from student where id=#

呼叫這個語句時可以通過後台看到列印出的sql為:

select * from student where id='2'

使用${}時的sql不會當做字串處理,原樣輸出:

select * from student where id=$

在呼叫這個語句時控制台列印的為:

select * from student where id=2

在需要原樣輸出時使用${},如:

select * from $ order by $

則後台語句為:select * from student order by id

使用#{}則成:select * from 'student' order by 'id'是不對的

在使用以下的配置時,必須使用#{}

select * from message where id=#;

在parametertype是int時,sql語句中必須是#{}

mybatis中 和 符號的區別

mybatis做為乙個輕量級orm框架在許多專案中使用,因其簡單的入門受到了廣大開發者的熱愛。在近期專案中再做乙個相關的開發,碰到了 符號這樣的問題,之前沒怎麼注意過,通過學習之後,有了點感悟,分享如下,使用 意味著使用的預編譯的語句,即在使用jdbc時的preparedstatement,sql語...

mybatis中 和 符號的區別

mybatis做為乙個輕量級orm框架在許多專案中使用,因其簡單的入門受到了廣大開發者的熱愛。在近期專案中再做乙個相關的開發,碰到了 符號這樣的問題,之前沒怎麼注意過,通過學習之後,有了點感悟,分享如下,使用 意味著使用的預編譯的語句,即在使用jdbc時的preparedstatement,sql語...

mybatis中 和 符號的區別

mybatis做為乙個輕量級orm框架在許多專案中使用,因其簡單的入門受到了廣大開發者的熱愛。在近期專案中再做乙個相關的開發,碰到了 符號這樣的問題,之前沒怎麼注意過,通過學習之後,有了點感悟,分享如下,使用 意味著使用的預編譯的語句,即在使用jdbc時的preparedstatement,sql語...