前言:
最近开始慢慢学一些比较便捷,比较常见的框架。拓展一下技术栈。第一个框架就是mybatis-plus这个框架其实早就接触过,当时写的时候没咋用,还是手动写sql语句,总觉得它生成的不太靠谱。现在开始学起来,也是另有一种不同感觉的。
个人认为:mybatis-plus虽然是一个比较好用的框架,很多的sql语句都不用自己写 ,都有直接可以调用的,编写一些简单的项目,实现起来会非常的快速,便捷。但是他将很多的sql封装了,语句的透明度没有这么高了,而且你要写一个较为复杂的查询语句的时候,就要自己重新写了。而且很多的sql语句也是用不到的,比较笨重,很难维护。。
mybatis-plus简介:MyBatis-Plus(简称 MP)是 MyBatis 的增强工具,它简化了 MyBatis 的配置和开发,提供了许多常用功能的封装,能够让开发者快速进行 CRUD(增、删、改、查)操作,同时支持复杂的查询和事务控制等功能。它减少了冗余代码的编写,增强了开发效率。
1、自动生成crud方法
public interface UserMapper extends BaseMapper<User> {// 你可以在这里添加自定义的方法
}
在继承的BaseMapper里面,封装了很多,如:
insert(T entity)
:插入一条记录。deleteById(Serializable id)
:根据 ID 删除记录。updateById(T entity)
:根据 ID 更新记录。selectById(Serializable id)
:根据 ID 查询记录。selectList(Wrapper<T> queryWrapper)
:条件查询。
具体使用方法:
List<Author> list=authorMapper.selectList(null);//null就是没有查询的条件//创建一个用来设置查询条件的对象;QueryWrapper<Author> wrapper=new QueryWrapper<Author>();wrapper.eq("name","张三");//条件name等于张三的。List<Author> list=authorMapper.selectList(wrapper);UpdateWrapper uw =new UpdateWrapper();uw.eq("id",a.getId());authorMapper.update(a,uw);//更新一个id=a.getId(); 的那条数据。//eq是equals,ne就是not equals()
还有很多分页,和其他增删改查的语句,这里就不一一列举了,若有兴趣可以写。
2、条件构造器
这个其实上面举例的时候就已经写过了。下面是较为详细的解析。
MyBatis-Plus 提供了 QueryWrapper
和 UpdateWrapper
用于构造 SQL 条件。
- QueryWrapper:用于查询条件构建。
- UpdateWrapper:用于更新条件构建。
// 查询 name 为 "John" 且 age 大于 18 的用户
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("name", "John").gt("age", 18);
List<User> userList = userMapper.selectList(queryWrapper);
通过 QueryWrapper
和 UpdateWrapper
可以方便地构造复杂的 SQL 条件,例如,排序、模糊查询、区间查询、多个字段的条件等。
3、自动填充功能
MyBatis-Plus 支持自动填充功能,适用于时间戳、创建人、修改人等字段,减少手动填充这些信息的操作。
例如,自动填充字段 createTime
和 updateTime
:
@TableField(fill = FieldFill.INSERT)
private Date createTime;@TableField(fill = FieldFill.INSERT_UPDATE)
private Date updateTime;
在实体类字段上使用 @TableField
注解标注需要自动填充的字段,MyBatis-Plus 会在执行插入或更新操作时自动填充这些字段。
其实后面还有很多细节的分页查询,代码生成器等等的小功能,这里就不一一列举了。
4、pom.xml配置
<dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-generator</artifactId><version>3.5.9</version></dependency><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.5.9</version></dependency>
总结
MyBatis-Plus 在 MyBatis 的基础上进行了一些增强,极大地简化了开发者的工作,提高了开发效率。它通过提供自动化的 CRUD 操作、条件构造器、分页插件、代码生成等功能,使得开发者能够更专注于业务逻辑的开发。
mybatis-plus官网:MyBatis-Plus 🚀 为简化开发而生