Java三层架构实战:从数据库表到控制层的完整开发流程

Java三层架构实战:从数据库表到控制层的完整开发流程

​ 在Java开发中,三层架构是一种常用的架构模式,可以将应用程序按照不同的职责划分为数据库表设计、实体层、DAO层、Mapper层、Service层、ServiceImpl和Controller层。本文将详细介绍每个层级的作用和示例代码,帮助大家了解并应用Java三层架构。

顺序:数据库表——>实体层——>DAO层——>Mapper层——>Service层——>ServiceImpl——>Controller层

1. 数据库表设计

首先,根据需求设计数据库表结构,定义表的字段、关系和约束。例如,我们创建了名为"Student"的表,包含了"id"、“name”、"age"和"major"字段。

2. 实体层

实体层是对象模型与数据库表之间的映射层。创建一个与数据库表对应的实体类,例如"Student"类,包含与表字段对应的属性、构造函数和Getter/Setter方法。

示例代码:

public class Student {
    
    
    private int id;
    private String name;
    private int age;
    private String major;

    // 构造函数、Getter/Setter方法
}

3. DAO层写接口

DAO层是数据访问层,定义了对数据库进行增删改查操作的接口。创建一个与实体类对应的DAO接口,例如"StudentDAO",定义插入、更新、删除、查询等方法。

示例代码:

public interface StudentDAO {
    
    
    void insert(Student student);
    void update(Student student);
    void delete(int id);
    Student getById(int id);
    List<Student> getAll();
}

4. Mapper层

Mapper层是DAO层的实现,负责编写与DAO接口对应的映射规则,即SQL和实体类(POJO)的映射规则。使用MyBatis等框架编写映射规则,将SQL语句与实体类关联起来。

示例代码:

<!-- StudentMapper.xml -->
<mapper namespace="com.example.dao.StudentDAO">
    <insert id="insert" parameterType="com.example.model.Student">
        INSERT INTO Student (id, name, age, major)
        VALUES (#{
    
    id}, #{
    
    name}, #{
    
    age}, #{
    
    major})
    </insert>
    <!-- 其他SQL语句 -->
</mapper>

5. Service层

Service层是业务逻辑层,处理具体的业务逻辑。创建一个与实体类对应的Service接口,定义业务方法,例如添加学生、更新学生信息等。

示例代码:

扫描二维码关注公众号,回复: 15489786 查看本文章
public interface StudentService {
    
    
    void addStudent(Student student);
    void updateStudent(Student student);
    void deleteStudent(int id);
    Student getStudentById(int id);
    List<Student> getAllStudents();
}

6. ServiceImpl

ServiceImpl是Service层的具体实现,实现Service接口中定义的方法。在具体方法中调用DAO层的方法来实现数据访问和业务逻辑处理

示例代码:

@Service
public class StudentServiceImpl implements StudentService {
    
    
    @Autowired
    private StudentDAO studentDAO;

    @Override
    public void addStudent(Student student) {
    
    
        studentDAO.insert(student);
    }

    @Override
    public void updateStudent(Student student) {
    
    
        studentDAO.update(student);
    }

    @Override
    public void deleteStudent(int id) {
    
    
        studentDAO.delete(id);
    }

    @Override
    public Student getStudentById(int id) {
    
    
        return studentDAO.getById(id);
    }

    @Override
    public List<Student> getAllStudents() {
    
    
        return studentDAO.getAll();
    }
}

7. Controller层

Controller层负责处理用户请求和返回响应。创建一个与实体类对应的Controller类,使用@RestController和@RequestMapping注解来定义URL映射,通过依赖注入方式引入Service接口,并在方法中调用Service层的方法来处理用户请求和返回响应。

示例代码:

@RestController
@RequestMapping("/students")
public class StudentController {
    
    
    @Autowired
    private StudentService studentService;

    @PostMapping
    public ResponseEntity<String> addStudent(@RequestBody Student student) {
    
    
        studentService.addStudent(student);
        return ResponseEntity.ok("Student added successfully.");
    }

    // 其他方法的实现
}

结论: 本文详细介绍了从数据库表设计到控制层的完整开发流程,涵盖了实体层、DAO层、Mapper层、Service层、ServiceImpl和Controller层。遵循三层架构的开发模式,可以使代码结构清晰、职责分离,提高代码的可维护性和可扩展性。通过实际示例,读者可以学习和应用Java三层架构,从而开发出高质量的Java应用程序。

猜你喜欢

转载自blog.csdn.net/LSW1737554365/article/details/131191866