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
setSqlSelect | SELECT 查询字段 |
---|---|
where | WHERE 语句,拼接 + WHERE 条件 |
and | AND 语句,拼接 + AND 字段=值 |
andNew | AND 语句,拼接 + AND (字段=值) |
or | OR 语句,拼接 + OR 字段=值 |
orNew | OR 语句,拼接 + OR (字段=值) |
eq | 等于= |
allEq | 基于 map 内容等于= |
ne | 不等于<> |
gt | 大于> |
ge | 大于等于>= |
lt | 小于< |
le | 小于等于<= |
like | 模糊查询 LIKE |
notLike | NOT LIKE模糊查询 |
in | IN 查询 |
notIn | NOT IN 查询 |
isNull | NULL 值查询 |
isNotNull | IS NOT NULL |
groupBy | 分组 GROUP BY |
having | HAVING 关键词 |
orderBy | 排序 ORDER BY |
orderAsc | Asc 排序 ORDER BY |
orderDesc | DESC 排序 ORDER BY |
exists | EXISTS 条件语句 |
notExists | NOT EXISTS 条件语句 |
between | BETWEEN 条件语句 |
notBetween | NOT BETWEEN 条件语句 |
addFilter | 自由拼接 SQL |
last | 拼接在最后,例如:last(“LIMIT 1”) |
五、打印日志
默认是不打印日志的,需要我们配置
mybatis-plus:
configuration:
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
hi~我是Mirror,一个为了自由安逸的未来而不断前进的的程序员。
如果你觉得文章对你有一点点帮助,一个小小赞,便是对我的认可,如果有不足之处,也欢迎各位指正。