Mybatis-plus的Service CRUD 接口


1.在自己的service接口中继承IService(mybatis-plus提供的CRUD接口),IService需提供泛型;

 
 
//这个接口mybatis不能自己实现
public interface AdminService extends IService<Admin> {
}

2.实现自己的service接口并且继承mybatis-plus的ServiceImpl这个类,这个类支持泛型,需要提供一个mapper接口和实体类;

如果最service有特别的需求,可以通过在这里重写所需的方法即可,例如下面对save方法进行重写,对用户名密码进行格式判断。

@Service
public class AdminServiceImpl extends ServiceImpl<AdminMapper, Admin> implements  AdminService {
    //实现我们自己Admin的service接口,继承mybatis的ServiceImpl的实现,

    //自定义sava方法,实现业务逻辑
    @Override
    public boolean save(Admin entity) {
        //1.用户名不能重复
        QueryWrapper queryWrapper=new QueryWrapper();
        queryWrapper.eq("username", entity.getUsername());
        Integer count = baseMapper.selectCount(queryWrapper);
        if (count>0){
            //存在相同用户名用户
            throw  new RuntimeException("存在相同用户名用户");
        }
        //2.密码必须在6到12位之间
        //首先判断密码不能为空
        if (StringUtils.isEmpty(entity.getPassword())){
            throw  new RuntimeException("密码为空");
        }
        //判断密码长度
        int length = entity.getPassword().length();
        if ((length<6)||(length>12)){
            throw  new RuntimeException("密码长度应为6-12之间");
        }
        int insert = baseMapper.insert(entity);

        return insert==1;
    }
}

测试

这里只需提供我们的service接口,因为上面的实现类通过@Service已经将对象托管至spring,我们可以通过注释@Resource将实现类注入进来。

    @Test
    void test02(){
        //创建一个条件对象
        Admin admin = new Admin();
        admin.setUsername("1211110");
        admin.setRealName("张三");
        admin.setPassword("121212");
        boolean save = adminService.save(admin);
        System.out.println(save);
    }

总结

1.AdminService必须要有实现类,它不能像mapper一样mybatis会自动提供实现类;setSize()方法

2.分页中尽量不要使用setMaxLimit()方法,而应该使用setSize()方法,而且会默认给出10个数值,所以会覆盖setMaxLimit设置的
setSize     详细 X
网络释义
setSize: 设置弹出窗口尺寸
void setsize: 设置数组大小
setsize effect: 组量效应


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM