个人网站收款接口,163邮箱企业邮箱注册,绿色网站设计,网络营销方案ppt#x1f40c;个人主页#xff1a; #x1f40c; 叶落闲庭 #x1f4a8;我的专栏#xff1a;#x1f4a8; c语言 数据结构 javaEE 操作系统 Redis 石可破也#xff0c;而不可夺坚#xff1b;丹可磨也#xff0c;而不可夺赤。 MybatisPlus 一、条件构造器1.1 基于QueryW… 个人主页 叶落闲庭 我的专栏 c语言 数据结构 javaEE 操作系统 Redis 石可破也而不可夺坚丹可磨也而不可夺赤。 MybatisPlus 一、条件构造器1.1 基于QueryWrapper查询1.2 基于QueryWrapper修改1.3 基于UpdateWrapper修改1.4 基于LambdaQueryWrapper查询 二、自定义SQL2.1 基于Wrapper来构建where条件2.2 在mapper方法参数中用Param注解声明wrapper变量名称必须是ew2.3 自定义SQL并使用Wrapper条件 三、Service接口3.1 Service接口基本用法 一、条件构造器
MybatisPlus支持各种复杂的where条件可以满足日常开发的所有需求 BaseMapper中的方法参数可以是一个条件构造器Wrapper,通过继承关系可以看出查询的条件构造器QueryWrapper和修改的条件构造器UpdateWrapper都继承自AbstractWrapper在AbstractWrapper中有多个方法可以使用如eq表示等于ge表示大于等于等等只要在where条件中用到的都可以在AbstractWrapper中对应的方法实现。 而QueryWrapper和UpdateWrapper处理继承父类AbstractWrapper的所有功能外还拓展了自己的功能QueryWrapper就是在父类的基础上拓展类select的功能同理UpdateWrapper就是拓展了更新相关的功能即setSql方法通过字符串的形式把set的部分写出来然后拼到sql语句中。 还有一个构造器是在构造条件时基于Lambda的语法实现上述功能的
1.1 基于QueryWrapper查询 Test
void testQueryWrapper() {//1.构建查询条件QueryWrapperUser2 wrapper new QueryWrapperUser2().select(id,username,password).like(username,a);//2.查询ListUser2 user2s user2Mapper.selectList(wrapper);user2s.forEach(System.out::println);
}1.2 基于QueryWrapper修改
Test
void testUpdateByQueryWrapper() {//要更新的数据User2 user2 new User2();user2.setPassword(000);//更新的条件QueryWrapperUser2 wrapper new QueryWrapperUser2().eq(username,zhaoliu);//执行更新user2Mapper.update(user2,wrapper);
}1.3 基于UpdateWrapper修改
Test
void testUpdateWrapper() {UpdateWrapperUser2 wrapper new UpdateWrapperUser2().setSql(password 111).in(id,1,3,4);//执行更新user2Mapper.update(null,wrapper);
}1.4 基于LambdaQueryWrapper查询
Test
void testLambdaQueryWrapper() {//1.构建查询条件LambdaQueryWrapperUser2 wrapper new LambdaQueryWrapperUser2().select(User2::getId,User2::getUsername,User2::getPassword).like(User2::getUsername,a);//2.查询ListUser2 user2s user2Mapper.selectList(wrapper);user2s.forEach(System.out::println);
}二、自定义SQL
我们可以利用MybatisPlus的Wrapper来构建复杂的where条件然后自己定义SQL语句中剩下的部分
2.1 基于Wrapper来构建where条件
Test
void testCustomSqlUpdate() {//更新条件String password 333;//执行更新QueryWrapperUser2 wrapper new QueryWrapperUser2().in(id,2,5,6);//调用自定义方法user2Mapper.updatePwdByIds(wrapper,password);
}2.2 在mapper方法参数中用Param注解声明wrapper变量名称必须是ew
void updatePwdByIds(Param(ew) QueryWrapperUser2 wrapper,Param(password) String password);2.3 自定义SQL并使用Wrapper条件
Update(update tb_user2 set password #{password} ${ew.customSqlSegment})
void updatePwdByIds(Param(ew) QueryWrapperUser2 wrapper,Param(password) String password);三、Service接口
3.1 Service接口基本用法
自定义Service接口继承IService接口
public interface IUserService extends IServiceUser2 {
}自定义Service实现类实现自定义接口并继承Servicelmpl类
public class UserServiceImpl extends ServiceImplUser2Mapper,User2 implements IUserService {
}Service新增
Test
void testSaveUser() {User2 user new User2();user.setId(7);user.setUsername(老七);user.setPassword(777);userService.save(user);
}Service查询
Test
void testQuery() {ListInteger ids new ArrayList();ids.add(1);ids.add(3);ids.add(5);ListUser2 user2s userService.listByIds(ids);user2s.forEach(System.out::println);
}