最近工作比較忙,好久沒有更新了。剛好昨晚完成了一個項目的模塊完成了,早上趁着這丁點的空閒,把最近遇到的mybatis的需要注意的地方記錄下來。今天我們主要來看mybatis中的運算。
一,邏輯運算
說到邏輯運算,肯定邏輯運算符是重中之重了,這裏的邏輯運算符和我們往常寫的可不一樣,接下來看看這個比對關係,如下圖:
原符號 |
mybatis |
說明 |
---|---|---|
> | > | 大於號 |
>= | >= | 大於等於號 |
< | < | 小於號 |
<= | <= | 小於等於號 |
& | & | 按位與 |
' | ' | 英文單引號 |
" | " | 英文雙引號 |
例子:
有學生表studen(id, age, sex, address),id-學生id;age-學生年齡;sex-學生性別;address-學生住址
場景:要查出年齡在9歲及以上的學生。
在mybatis的<select>標籤中可以這樣寫sql,如下:
SELECT * FROM student WHERE age >= 9
二,算術運算
mybatis裏支不支持對傳進來的參數做四則運算(加,減,乘,除)呢?答案是肯定的。接下來我們看看具體例子,看看是如何使用的。
例子:
有賬戶表account(no,balance, time),no-賬戶編號;balance-賬戶餘額(單位分);time-開立賬戶時間。
場景一:查詢出餘額大於參數 lessAmount的賬戶,可這個lessAmount的單位是元,在mybatis的<select>標籤中可以這樣寫sql,如下:
SELECT * FROM account WHERE balance > #{lessAmount} * 100
場景二:給賬戶編號爲001的賬戶入賬 tempAmount分,這天又恰好是中秋節,領導說給賬戶再發20元的紅包(加2000分),在mybatis的<select>標籤中可以這樣寫sql,如下:
UPDATE account SET balance = ( #{tempAmount} + 2000 ) WHERE no='001'
其他兩個用法同上類比:
除:場景暫時不管,先看用法
SELECT * FROM account WHERE balance > #{lessAmount} / 100
減:場景暫時不管,先看用法
UPDATE account SET balance = ( #{tempAmount} - 2000 ) WHERE no='001'