02.mybatis变强了(mybatis-plus),你呢?

Mybatis-Plus是一个 Mybatis 的增强工具,理念是只做增强不做改变,为简化开发、提高效率而生。
它封装好了一些crud方法,我们不需要再写xml了,直接调用这些方法就行,就类似于JPA。
可以去看看官网 https://baomidou.com/


一、关联实体类和数据库

//1. 使用@TableName指定表名
@TableName(value = "student", autoResultMap = true)
public class Student{
    //2. @ TableId指定主键,并自增id
    @TableId(value = "id",type = IdType.AUTO)
    private Integer id;
    
    //2. 指定表中对应的字段
    @TableField(value = "student_id")
    private Integer studentId;
    
    @TableField(value = "student_name")
    private Integer studentName;
    
    //3.每次注入该字段的时候可以某些特殊处理,自己定义的KeyHandler类继承BaseTypeHandler类
//需要配置mybatis-plus.type-handlers-package: org.oxhainan.payment.paygateway.dao.handler
    @TableField(value = "password",typeHandler = KeyHandler.class)
    private Integer password;
}

二、业务层继承IService类

//像一些业务逻辑少的业务层,直接继承IService类,这样service层之后的代码都不用写了
public interface CipBankInfoService extends IService<CipBankInfoDO> {
}

@RestController
@RequestMapping("query/bank")
public class BankInfoController {
    @Autowired
    private BankInfoService  bankInfoServiceImpl;

    @PostMapping("list")
    public BaseResponse<List<BankInfoDO>> list(){
        QueryWrapper queryWrapper = new QueryWrapper();
        queryWrapper.eq("status",1);
        BaseResponse<List<BankInfoDO>> baseResponse = new BaseResponse<List<BankInfoDO>> ();
        baseResponse.setCode(0);
        baseResponse.setData(bankInfoServiceImpl.list(queryWrapper));
        return baseResponse;
    }
}

三、Mapper层继承BaseMapper

//1. 对于必须要写service层的业务逻辑的,直接写一个继承BaseMapper类的mapper类,这样就不用编写mapper文件了
//2. dao层继承BaseMapper接口,里面封装了一些常见的crud方法
//3. 若需要特别的方法,可以统一写在SqlMapper.xml文件里
@Mapper
public interface StudentMapper extends BaseMapper<Student> {
}

@Repository
public class StudentRepositoryImpl implements StudentRepository {

@Autowired
private StudentMapper studentMapper;

@Override
public StudentDO getStudentByStudentId(Integer sId) {
        //4. 建议使用Lambda语法的LambdaQueryWrapper,避免魔法值
        LambdaQueryWrapper<Student> queryWrapper = new LambdaQueryWrapper<>();
        queryWrapper.eq(Student::getStudentId, sId);
        return studentMapper.selectOne(queryWrapper);
    }
}

四、条件构造器方法对应Sql

setSqlSelectSELECT 查询字段
whereWHERE 语句,拼接 + WHERE 条件
andAND 语句,拼接 + AND 字段=值
andNewAND 语句,拼接 + AND (字段=值)
orOR 语句,拼接 + OR 字段=值
orNewOR 语句,拼接 + OR (字段=值)
eq等于=
allEq基于 map 内容等于=
ne不等于<>
gt大于>
ge大于等于>=
lt小于<
le小于等于<=
like模糊查询 LIKE
notLikeNOT LIKE模糊查询
inIN 查询
notInNOT IN 查询
isNullNULL 值查询
isNotNullIS NOT NULL
groupBy分组 GROUP BY
havingHAVING 关键词
orderBy排序 ORDER BY
orderAscAsc 排序 ORDER BY
orderDescDESC 排序 ORDER BY
existsEXISTS 条件语句
notExistsNOT EXISTS 条件语句
betweenBETWEEN 条件语句
notBetweenNOT BETWEEN 条件语句
addFilter自由拼接 SQL
last拼接在最后,例如:last(“LIMIT 1”)

五、打印日志

默认是不打印日志的,需要我们配置

mybatis-plus:
  configuration:
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl

hi~我是Mirror,一个为了自由安逸的未来而不断前进的的程序员。
如果你觉得文章对你有一点点帮助,一个小小赞,便是对我的认可,如果有不足之处,也欢迎各位指正。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值