最近工作比较忙,好久没有更新了。刚好昨晚完成了一个项目的模块完成了,早上趁着这丁点的空闲,把最近遇到的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'