Java实现层

时间:2018-07-17 16:40:21

标签: java spring spring-mvc spring-boot

DAO 服务 DTO 控制器实体层在Java中。我进入DTO,因为实体是 POJO 类,所以我们创建数据库表。控制器是我们使用球衣或某些spring控制器(RequestMapping ...)编写Web服务调用的地方。

但是我没有涉及服务层和DAO层。在DAO层中,我们写了有关访问数据库的信息。在服务层中,我们编写有关Web服务的实现。因此,我们是否在服务层中使用dao对象。我想知道有关此服务层和DAO层的简要说明。

3 个答案:

答案 0 :(得分:0)

听起来您的想法正确。

DAO是实际连接到数据库并保存/检索数据的部分,服务层包含周围的业务逻辑。通常从服务层调用DAO。

优良作法是将尽可能少的业务逻辑放在DAO中,而将其留给服务层。

答案 1 :(得分:0)

这些是不同的逻辑实体:

  • DAO层存在的目的仅仅是提供与DB的连接(这就是DAO =数据访问对象的原因)并在其中执行SQL命令(例如,使用Hibernate)。
  • 服务层在从数据库和客户端发送的原始数据之间提供逻辑。在服务中,您调用DAO层以提供对象。在服务级别上,通常执行与业务相关的规则,验证,授权等。

主要思想是不让端点(@Controller@RestController)直接在数据库层进行操作。

答案 2 :(得分:0)

  

DAO是数据访问对象,是提供抽象的对象   与数据库的接口。 DAO提供一些特定的数据操作   不公开数据库的详细信息

但是DAO没有或不应该具有特定的业务逻辑,如果您除了CRUD操作之外还有更多的业务逻辑要应用,那么您也需要一个服务层。

  

此DAO可以执行CRUD操作,可以创建,检索,更新数据,   从我们的表中删除。

DAO的界面应如下所示:

public interface UserDao {
    User getUser();
    Set<User> getAllUsers();
    User getUserByUserNameAndPassword();
    boolean insertUser();
    boolean updateUser();
    boolean deleteUser();
}

如果需要在执行CRUD操作或日志记录之前验证访问权限,则服务层将采用业务逻辑,这些是一些示例。

在体系结构中,控制器->服务层-> DAO->实体... 控制器引用服务层,服务引用DAO

有关此链接的更多信息: https://dzone.com/articles/building-simple-data-access-layer-using-jdbc https://en.wikipedia.org/wiki/Data_access_object