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