创建项目注意事项
创建项目时须勾选如下图所示的三个内容
创建完成之后在pom文件中导入mybatis-plus依赖:
引入jar包时,注意你项目类型,springboot型和普通maven型,引入的库是不一样的,详细见MyBatis-PlusMyBatis-PlusMyBatis-Plus
<dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.5.1</version> </dependency>
并把mysql的版本号改为5.1.26
在YAML文件中连接数据库并配置日志
创建实体类注意事项
由于不需要编写任何sql语句,实体类和表之前的对应关系变得尤为重要,java通常采用驼峰命名法,但是数据库的表名和列名没有驼峰命名规定的,因为在mysql中表名和列名默认情况都是大写字母,数据库命名规范为下划线命名法,多个单词组成用_分割,默认情况下,实体类叫做userName,在下划线命名法中就会变成user_name,所以在使用mybatis-plus框架中,尤其要注意。
Mybatis-plus为了方便这种命名法的转换出现一些不必要麻烦,提供了3个注解帮助你解决命名这块的问题:
@TableName:mybatis-plus中的注解,主要实现实体类型和数据库的表实现映射 。
@TableId:专门用在主键上的注解,IdType.AUTO表示自增,即在实施增加操作时,默认主键自动加1。
@TableField:该注解用于标识非主键的字段。
具体如下:
编写mapper接口注意事项
@Mapper:把mapper这个DAO交给Spring管理。
注意:mapper接口中无需再写sql语句,必须继承BaseMapper<实体类>类,且泛型必须为此接口对应的实体类。
编写service接口注意事项
注意:service接口必须继承IService<实体类>这个类,且泛型必须为实体类。
点开此类可以发现,里面有基础的CRUD操作,无需再手动编写。
编写实现类注意事项
@Service:标记该类为service类
@Transactional:添加事务
注意:实现类必须继承ServiceImpl<mapper接口,实体类>,并且要实现service接口
增删改查操作
编写控制器:
调用service里自动生成的查询列表操作。
打开postman软件进行测试。
其余操作如下图所示。
条件为必须时的查询操作
以登录为案例:
登录时所需的条件由条件构造器进行封装。
QueryWrapper:条件构造器。用于生成 sql 的 where 条件, entity 属性也用于生成 sql 的 where 条件。
打开IService类源码可以看到,getOne方法及根据条件获取对象,符合登录所需,所以登录可使用该方法。
其中eq等于=。
进行测试。
条件不是必须时的查询操作
条件不是必须时查询操作查出的可能会是集合,所以调用的方法为list,其中:
like:'%值%'
ge:>=
le:<=
完成测试。
分页操作
以book表为实体类,创建实体类,编写mapper接口,编写service接口,编写service实现类,均与上面操作相同,这里不一一赘述。
编写分页插件的配置文件:
PaginationInnerInterceptor:分页插件
编写控制器:
进行测试:
分页对象Page中的属性:
records:列表数据
total:总记录数
Size: 每页显示记录数
Current:当前页
Pages:总页数
分页+条件查询+降序
要求:
根据选择的类型模糊查询,并按创建时间降序排列。
@RequestParam:将请求参数绑定到控制器方法的参数上。
进行测试。