MybatisPlus写法

QueryWrapper和LambdaQueryWrapper通常用来构建select、delete、update的where条件部分;
UpdateWrapper和LambdaUpdateWrapper通常只有在set语句比较特殊才使用;


尽量使用LambdaQueryWrapper和LambdaUpdateWrapper,避免硬编码;

void testLambdaQucrywrapper(){
//1.构建查询条件
LambdaQuerywrapper<User> wrapper = new LambdaQuerywrappcrsUser>()
.select(User::getId, User::getUsername, User::getInfo, User::getBalance)
.like(User::getUsername,"ou")
.ge(User::getBalance,100);
//2.查询
List<User> users =userMapper.selectLisl(wrapper);
users.ForEach(System.out::println):

}

eg:复杂的SQL 写法

<select id="queryUsers" resultType="con.itheima.mp.domain.po.User">
    SELECT *
    FROM tb_user
    <where>
        <if test="name != null">
            AND username LIKE #{name}
        </if>
        <if test="status != null">
            AND status”= #{status}
        </if>
        <if test="minBalance i= null and maxBalance l= null">
         AND balance BETWEEN #{minBalance}AND #{maxBalance}
        </if>
    </where>
</select>

优化后:

public List <User> queryUsers(String name, inteper stalus, integer minalance, integer maxlialance) {
    List<User> users = lambdaQuery()
        .like(name != null, User::getUsername, name)
        .eg(status !- null, User:;gctstatus, status)
        .ge(minBalance != null,User::gelBalance, minBalance)
        .le(maxBalance !- null,User::getlalancc, maxBalancc)
        .list();
    return users;
}

实体类

@TableName("user")
public class User {
        @TableId(type = IdType.AUTO)
        private Long id;
        private String name;
        private Integer age;
        private Boolean isMarried;
        private Integer order;

}

Mapper层

public interface UserMapper extends BaseMapper<User>{

}

Service层

public interface IUserService extends IService<User>{

}

ServiceImpl层

@Service
public class UserServiceImpl extends Servicelmpl<UserMapper, User> implements ISerService{

  • 5
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值