mybatisplus框架
mybatis框架减少了我们crud代码的时间,在服务层我们不用在去调用dao层,不用书写sql。直接调用mybatisplus封装好的crud的方法。
具体方法请参考官方文档:
mybatisplus:https://baomidou.com/guide/wrapper.html
条件构造器的使用
条件构造器,顾名思义:构造条件来使用。
所以,当我们调用mybatisplus封装好的方法的时候,传递的参数和预期不符,这时候就会用到条件构造器对数据进行操作,因为insert大概率不会用到条件,都是直接插入,所以这里只对查、删、改进行操作。而删、改本质都是对数据进行修改,所以可以调用同一个方法update(),查询调用lambdaQuery()。
这里可以参考github的mybatisplus的源码mybatis-plus-samples下的mybatis-plus-samples-crud下的SampleTest,里面有具体的增删改查条件构造器的使用案例。
具体示例如下:
查询:
也可以写成Wrappers.lambdaQuery(参数param): 表示利用条件构造器去查询这个param.
如:有一个stu表
id|name|age|school
1|“张三”| 18 | “一中”
2|“李四”| 19 | “二中”
3|“王五”| 20 | “三中”
User user = new User;
mapper.selectList默认执行 select * from stu;
那条件构造器**Wrappers.lambdaQuery(user)**本质就是:
where id = 1 and name=“张三” and age=18 and school=“一中”;
如果还要查询具体的字段的话,Wrappers.lambdaQuery(user).select(User::getname,User::getage)
如果要分组的话:Wrappers.lambdaQuery(user).select(User::getname,User::getage). groupby(具体的字段)。
注意:
这里括号里的是(User::getname,User::getage)是大写的User。
删除
同样的,tbAppCancellationFlagService.remove默认执行delete from stu;
Wrappers.update(user) 就是where id = 1 and name=“张三” and age=18 and school=“一中”;
修改
同样的,默认执行update stu set id = 8 and name=“老铁” and age=18 and school=“一中”;
Wrappers.update(user) 就是 where where id = 1 and name=“张三” and age=18 and school=“一中”;