Java Dao层、service层、controller层、Mapper层

DAO层(data access object)

数据访问层,和数据库的一张表相对应。通常在DAO层写接口,里面封装了和数据打交道的方法。

 public interface AppDao{
     int deleteById(Inter id);
     List <bank> findByTime (@Param("begin") Timestamp begin,@Param("end") Timestamp end);    
 }

Mapper层

直接对数据库进行操作,写入的是sql语句。

<select id = findByTime>
select * from bank where time &gt;=#{begin} and time &lt;={end};
</select>

service层=service接口+servicelmpl实现类

服务层,对一个或多个DAO层进行封装,使用一个方法对外表现为实现一个功能。
当项目的业务逻辑简单时,可选择service层=service类;
当项目的业务复杂时,可选择service层=service接口+serviceImpl实现类;

controller层

控制器,controller层负责接收前端传过来的数据和请求并调用service层中定义的方法进行业务操作。

### Spring Boot 分架构设计与实现 #### 三架构概述 一个典型的Spring Boot应用程序通常采用分架构来提高模块化程度和可维护性。主要分为三个次:ControllerServiceMapper,每一都有特定的功能和职责。 #### Controller Controller负责处理HTTP请求并返回响应给客户端。这一通过接收来自前端或其他服务的调用,解析参数并将业务逻辑委托给下一——Service。为了简化开发过程,Spring框架提供了`@RestController`注解用于定义RESTful Web Services控制器[^1]。 ```java package com.example.controller; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import java.util.List; @RestController @RequestMapping("/users") public class UserController { private final UserService userService; @Autowired public UserController(UserService userService) { this.userService = userService; } @GetMapping public List<User> getAllUsers() { return userService.getAllUsers(); } } ``` #### Service Service包含了核心业务逻辑,在这里实现了数据验证、计算以及其他复杂的操作流程。它作为中间件连接着上的应用程序接口(即Controller)和底的数据访问对象(DAO)。此还承担事务管理的任务,确保多个数据库操作要么全部成功执行,要么完全回滚[^3]。 ```java package com.example.service.impl; import com.example.entity.User; import com.example.mapper.UserMapper; import com.example.service.UserService; import org.springframework.stereotype.Service; import javax.transaction.Transactional; import java.util.List; @Service @Transactional public class UserServiceImpl implements UserService { private final UserMapper userMapper; public UserServiceImpl(UserMapper userMapper) { this.userMapper = userMapper; } @Override public List<User> getAllUsers() { return userMapper.selectAll(); } } ``` #### Mapper Mapper主要用于映射Java对象到关系型数据库表结构之间转换的工作。MyBatis是一个流行的持久框架,可以方便地配置SQL语句并与实体类关联起来。在Spring Boot应用中,可以通过`@MapperScan`指定扫描包路径自动注册所有的Mapper接口实例[^2]。 ```java package com.example.mapper; import com.example.entity.User; import org.apache.ibatis.annotations.Select; import java.util.List; public interface UserMapper { @Select("SELECT * FROM users") List<User> selectAll(); } ``` #### Entity 实体类 虽然不是严格意义上的“”,但在讨论分架构时不可或缺的是Entity部分。这部分表领域模型或POJO(Plain Old Java Object),它们代表了存储于数据库中的记录,并且可以在不同次间传递而不改变其状态。 ```java package com.example.entity; public class User { private Long id; private String name; private Integer age; // Getters and Setters... } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值