MyBatis-Plus 用起来真的很舒服( 六 )


MyBatis-Plus 用起来真的很舒服

文章插图
 
最后执行即可生成实体类、Mapper接口、Service、Controller和Mapper映射文件:
MyBatis-Plus 用起来真的很舒服

文章插图
 

MyBatis-Plus 用起来真的很舒服

文章插图
 
 
需要注意的是Service的实现类:
@Servicepublic class EmployeeServiceImpl extends ServiceImpl<EmployeeMapper, Employee> implements EmployeeService {}
MyBatis-Plus 用起来真的很舒服

文章插图
 
它继承自ServiceImpl:
public class ServiceImpl<M extends BaseMapper<T>, T> implements IService<T> {    protected Log log = LogFactory.getLog(getClass());    @Autowired    protected M baseMapper;     ......}
MyBatis-Plus 用起来真的很舒服

文章插图
 
该类提供了一些简单的服务方法,所以我们无需编写任何代码就可以使用一些简单的增删改查服务代码,而且它自动注入了M泛型的baseMapper,所以我们也能够直接在EmployeeServiceImpl中使用该Mapper 。
插件MyBatisPlus提供了一些非常好用的框架来简化我们的开发,一起来看看吧 。
分页插件在前面的分页方法中我们已经使用到了分页插件,这里再简单介绍一下吧 。
要想使用分页插件,首先就需要将该插件注册到容器中:
@Configurationpublic class MyBatisConfig {    @Bean    public PaginationInterceptor paginationInterceptor() {        return new PaginationInterceptor();    }}
MyBatis-Plus 用起来真的很舒服

文章插图
 
然后就可以使用了:
@Testvoid contextLoads() {    Page<Employee> page = employeeMapper.selectPage(new Page<>(1, 2), null);    List<Employee> emps = page.getRecords();    for (Employee emp : emps) {        System.out.println(emp);    }}
MyBatis-Plus 用起来真的很舒服

文章插图
 
Page对象中封装了非常多的信息,比如:
@Testvoid contextLoads() {    Page<Employee> page = employeeMapper.selectPage(new Page<>(1, 2), null);    // 获取分页数据    List<Employee> emps = page.getRecords();    System.out.println("获取总条数:" + page.getTotal());    System.out.println("获取当前页码:" + page.getCurrent());    System.out.println("获取总页码:" + page.getPages());    System.out.println("获取每页显示的数据条数:" + page.getSize());    System.out.println("是否有上一页:" + page.hasPrevious());    System.out.println("是否有下一页:" + page.hasNext());}
MyBatis-Plus 用起来真的很舒服

文章插图
 
执行结果:
获取总条数:4获取当前页码:1获取总页码:2获取每页显示的数据条数:2是否有上一页:false是否有下一页:true
MyBatis-Plus 用起来真的很舒服

文章插图
 
执行分析插件该插件的作用是分析update和delete操作,防止小白误操作或恶意的攻击,需要注意的是该插件仅支持MySQL5.6.3以上版本 。
使用也非常简单,首先将插件注册到容器中:
@Beanpublic BlockAttackInnerInterceptor blockAttackInnerInterceptor(){    return new BlockAttackInnerInterceptor();}
MyBatis-Plus 用起来真的很舒服

文章插图
 
此时我们执行全表删除操作:
@Testvoid contextLoads() {    employeeMapper.delete(null);}
MyBatis-Plus 用起来真的很舒服


推荐阅读