BaseService --- service层的抽取

为什么要抽离

面向接口编程。定义一系列的公用接口,多子类实现,便于以后扩展。

如何抽离

1.抽离前UserService接口

public interface UserService {
    public void save(User user);//保存
 
    public void delete(User user);//删除用户
 
    public void update(User user);//更新用户
 
    public User findById(Serializable id);//根据主键查找用户
 
    public List<User> getAll();//查看所有
 
    public List<User> findLike(User user);//模糊查询
 
    public User findByName(String userName);//根据用户名查询 保证用户名唯一
 
}

2.抽取前UserServiceImpl

@Service("userService")
public class UserServiceImpl implements UserService {
 
    @Resource
    private UserDao userDao;
 
    public void save(User user) {
        userDao.save(user);
    }
    public void delete(User user) {
        userDao.delete(user);
    }
    public void update(User user) {
        userDao.update(user);
    }
    public User findById(Serializable id) {
        return userDao.findById(id);
    }
    public List<User> getAll() {
        return userDao.getAll();
    }
    public List<User> findLike(User user) {
        return userDao.findLike(user);
    }
    public User findByName(String userName) {
        return userDao.findByName(userName);
    }

3.创建BaseService


public interface BaseService<T> {
    public void save(T entity);// 保存
 
    public void delete(T entity);// 删除用户
 
    public void update(T entity);// 更新用户
 
    public T findById(Serializable id);// 根据主键查找用户
 
    public List<T> getAll();// 查看所有
 
}

4.创建BaseServiceImpl

public class BaseServiceImpl<T> implements BaseService<T> {
 
    private BaseDao<T> baseDao;
    public void setBaseDao(BaseDao<T> baseDao) {
        this.baseDao = baseDao;
    }
 
    public void save(T entity) {
        baseDao.save(entity);
    }
    public void delete(T entity) {
        baseDao.delete(entity);
    }
    public void update(T entity) {
        baseDao.update(entity);
    }
    public T findById(Serializable id) {
        return baseDao.findById(id);
    }
    public List<T> getAll() {
        return baseDao.getAll();
    }

5.UserService继承BaseService(把BaseService中的有的方法在UserService注释掉)

public interface UserService extends BaseService<User> {
 
    /*public void save(User user);//保存
    public void delete(User user);//删除用户
    public void update(User user);//更新用户
    public User findById(Serializable id);//根据主键查找用户
    public List<User> getAll();//查看所有
*/
    //以下两个方法是根据业务需要新增的方法,
    //可以看到抽取完BaseService后,service层只剩下新增的业务,比较简洁
    public List<User> findLike(User user);//模糊查询
 
    public User findByName(String userName);//根据用户名查询 保证用户名唯一
 
}

总结

简单的抽离就是如此,但是真正有些不同的地方还需要结合具体项目来看,不断学习,一直前进~

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Mybatis-Plus是一个基于Mybatis的增强工具,提供了许多实用的功能,如自动生成代码、分页查询、条件构造器、性能分析等。Mybatis-Plus Service是Mybatis-Plus的一个模块,提供了一些常用的Service层接口和实现类,如IServiceServiceImpl等,方便开发者快速构建Service层。 ### 回答2: Mybatis-Plus是一个开源的、能够和Mybatis无缝衔接并扩展出更多实用功能的框架。在实际项目开发中,通常会使用到基于Mybatis-Plus的Service层,以下是关于Mybatis-Plus Service的一些介绍。 Mybatis-Plus的Service层是基于Mybatis-Plus框架进行封装的,旨在简化开发者编写Service层代码的流程。使用Mybatis-Plus Service可以有效地减少重复代码的编写,提高开发效率。 在Mybatis-Plus Service中,通常包含了一些常见的CRUD方法,如查询列表、根据ID查询、插入、更新和删除等。我们可以通过继承BaseService或者IService来使用这些方法。同时,Mybatis-Plus Service还提供了一些强大的查询构建器,如LambdaQueryWrapper和QueryWrapper等,可以快速构建复杂的查询条件。 另外,Mybatis-Plus Service还支持事务管理。它提供了一种@Transactional注解来实现声明式事务,我们只需在Service层的方法上添加该注解,即可完成事务的配置。 除了基本的CRUD操作和事务管理外,Mybatis-Plus Service还具有其他扩展的功能,例如分页查询、批量操作、逻辑删除等。这些功能都能够极大地简化开发者的编码工作。 总而言之,Mybatis-Plus Service是一种基于Mybatis-Plus框架的封装,用于简化Service层代码的编写。它提供了一系列的CRUD方法、事务管理以及其他实用功能,可以提高开发效率并减少冗余代码的编写。使用Mybatis-Plus Service,开发者能够更加专注于业务逻辑的实现,提高开发效率和代码质量。 ### 回答3: MyBatis-Plus是一个在MyBatis基础上的增强工具,提供了更加便捷的CRUD操作方式。其中的Service是MyBatis-Plus提供的一层封装,主要用于处理业务逻辑和数据库操作之间的关系。 MyBatis-Plus的Service主要有以下几个功能: 1. 提供通用的CRUD方法:Service提供了常见的增删改查方法,如save、remove、update等,可以直接调用这些方法来操作数据库,无需手写SQL语句。 2. 封装条件构造器:Service的方法中可以使用MyBatis-Plus提供的条件构造器来进行查询条件的组装,例如可以使用eq、like、in等方法来构建查询条件。 3. 支持分页查询:Service提供了分页查询的方法,可以方便地进行数据分页查询操作。可以设置每页的数量、当前页码等参数来实现分页效果。 4. 支持事务控制:Service可以通过注解的方式来对方法添加事务控制,保证在业务逻辑中的多个操作要么全部成功,要么全部失败。可以使用@Transactional注解来标记需要进行事务控制的方法。 总的来说,MyBatis-Plus的Service提供了一种更加便捷的数据库操作方式,简化了开发过程中的数据库操作代码,提高了开发效率。同时,它还具备一些高级功能,如条件构造器、分页查询和事务控制,使得开发者可以更加灵活和方便地进行业务逻辑的处理和数据库操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值