MyBatis-Plus 通用IService使用介紹


IService使用

service層需要繼承IService,當然實現層也要繼承對應的實現類。

/**
 * <p>
 * 用戶 服務類
 * </p>
 *
 * @author IT賤男
 * @since 2019-06-14
 */
public interface UserService extends IService<User> {
 
}
/**
 * <p>
 * 用戶 服務實現類
 * </p>
 *
 * @author IT賤男
 * @since 2019-06-14
 */
@Service
public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements UserService {
 
}

這里小編基本的增刪改查就不一一演示了,演示幾個特殊一點的方法。

getOne(),這個是方法返回結果不止一條則會拋出異常,如果想默認取第一條結果,可以給這方法傳第二個參數為false。

  @Test
    public void getOne() {
        User one = userService.getOne(Wrappers.<User>lambdaQuery().eq(User::getAge, 31),false);
        System.out.println(one);
    }

saveOrUpdateBatch(),批量新增或者修改方法,判斷ID是否存在,如果ID不存在執行新增,如果ID存在先執行查詢語句,查詢結果為空新增,否則修改。

   @Test
    public void saveOrUpdateBatch() {
        User user1 = new User();
        user1.setName("兔子");
        user1.setAge(18);
 
        User user2 = new User();
        user2.setId(1088250446457389060L);
        user2.setName("烏龜");
        user2.setAge(18);
 
        List<User> users = Arrays.asList(user1, user2);
 
        boolean b = userService.saveOrUpdateBatch(users);
        System.out.println(b);
    }

接下來說一下基於lambda的相關操作

 /**
     * lombda查詢
     */
    @Test
    public void lambdaQuery(){
        List<User> list = userService.lambdaQuery().eq(User::getAge, 18).list();
        list.forEach(System.out::println);
    }
 
    /**
     * lombda修改
     */
    @Test
    public void lambdaUpdate(){
        boolean update = userService.lambdaUpdate().eq(User::getAge, 18).set(User::getAge, 31).update();
        System.out.println(update);
    }
 
    /**
     * lombda刪除
     */
    @Test
    public void lambdaRemoce(){
        boolean remove = userService.lambdaUpdate().eq(User::getAge, 18).remove();
        System.out.println(remove);
    }

更多操作

更多操作請移至官網查看:https://mp.baomidou.com/guide/crud-interface.html#service-crud-接口


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM