06 和 的區別

2021-10-18 13:22:13 字數 2408 閱讀 1080

#{}和${}都可以獲取map中的值或者pojo物件屬性的值

tbuser select5

(@param

("username"

) string username,

@param

("phone"

) string phone)

;

"select5"

resulttype

=>

select

*from

tb_user

where

`username` = $ and

`phone` = #

select

>

測試

@test

public

void

test09()

報錯,觀察日誌輸出的sql語句:

select

*from tb_user where

`username`

= kobe and

`phone`

= ?

可以看到#{}和${}的區別

那這裡為啥報錯,是因為username的這一列是varchar型別,正確的sql

select

*from tb_user where

`username`

='kobe'

and`phone`

= ?

所以修改一下xml:

"select5"

resulttype

=>

select

*from

tb_user

where

`username` = '$' and

`phone` = #

select

>

這就可以了

tbuser selectlike

(@param

("username"

) string username,

@param

("phone"

) string phone)

;

"selectlike"

resulttype

=>

select

*from

tb_user

where

`username` like '%$%' and

`phone` like '$'#'$'

select

>

測試

@test

public

void

test10()

日誌輸出的sql:

select

*from tb_user where

`username`

like

'%kobe%'

and`phone`

like

'$'?'$'

明白了二者的區別,就知道該如何寫了

// 動態傳入表名

tbuser select6

(@param

("tablename"

) string tablename,

@param

("id"

) long id)

;

就不能使用#取值,原生jdbc不支援在表名的位置使用佔位符

"select6"

resulttype

=>

select

*from

#where

id = #

select

>

應該使用 tab

lena

me,,

tablen

ame,

{}是直接替換文字,而不是佔位符的形式

"select6"

resulttype

=>

select

*from

$where

id = #

select

>

@test

public

void

test11()

類似的還有指定排序字段,是降序還是公升序排序

mysql的 和 的區別 和 的區別

他們之間的區別用最直接的話來說就是 相當於對資料 加上 雙引號,相當於直接顯示資料。1 對傳入的引數視為字串,也就是它會預編譯select from user where name 比如我傳乙個csdn,那麼傳過來就是select from user where name csdn 2 將不會將傳入...

a和 a的區別

這道題目是我在面試的時候碰到的。當時面試官問我的時候,由於我什麼基礎都比較差,我聽到這個問題的時候整個人都傻了。我心想當時學c語言的時候,我只記得老師說這個都代表a陣列的首位址啊,這有什麼區別呢?這道題目,我最終沒有答出來,都怪我太菜了。今天這篇文章就當做是乙個記錄吧,也希望能給還不q清楚的同學一點...

and和or的區別

題目 求結果 a.1 or 2 b.1 and 2 c.1 2 2 d.1 2 2 結果 a 1 b 2 c 0 d 1 總結and和or的用法 and 從左到右,返回第乙個為假的表示式值,無假值則返回最後乙個表示式值。or 從左到右,返回第乙個為真的表示式值,無真值則返回最後乙個表示式值。備註 感...