首页 > 其他分享 >SSM框架中各层次作用及其关系(三)

SSM框架中各层次作用及其关系(三)

时间:2023-12-05 19:57:36浏览次数:28  
标签:逻辑 持久 框架 Service 各层次 数据库 DAO 业务 SSM

SSM框架中各层次作用及其关系(三)

DAO层与持久层的关系

DAO(Data Access Object)层和持久层在软件开发中是相关但不完全相同的概念。下面解释一下它们的关系:

  1. DAO层(Data Access Object):

    • DAO是一种设计模式,它的目标是将数据访问的逻辑从业务逻辑中分离出来,使得数据的访问操作更加模块化和可维护。
    • DAO层提供了一组接口(通常是Java接口),定义了与数据存储交互的方法。这些接口隐藏了底层数据存储(如数据库、文件系统)的具体细节。
    • DAO层的实现负责将接口定义的操作转换为底层数据存储的实际操作,例如执行SQL语句、访问文件等。
  2. 持久层(Persistence Layer):

    • 持久层是系统中负责将数据持久化到数据库或其他数据存储介质的部分。
    • 持久层包括了数据的读取、写入、更新和删除等操作。在关系型数据库中,这通常涉及使用SQL语句进行数据库操作。
    • MyBatis、Hibernate等ORM(对象关系映射)框架常常被用于实现持久层的功能,简化了数据库操作和对象关系映射的复杂性。

关系:

  • DAO层是持久层的一部分,用于提供对数据的访问接口。
  • 持久层包括了底层数据库的操作,而DAO层将这些操作进行了抽象和封装。
  • DAO层可以理解为持久层的接口定义,而实际的数据库操作则在持久层的具体实现中完成。

在一个典型的Java应用中,DAO层和持久层的关系可以这样描述:DAO层定义了数据的访问接口,而持久层实现了这些接口,负责将数据持久化到数据库中。ORM框架(如Hibernate)通常将DAO层的工作合并到持久层中,简化了数据访问的实现。在一些轻量级的项目中,这两个概念可能会交叉使用,而在大型企业级应用中,更倾向于使用ORM框架并将DAO的概念融入持久层。

业务逻辑层与service层之间的关系

在JAVASSM项目中,业务逻辑层(Business Logic Layer)和Service层的概念在一定程度上可以视为同一层次,通常是指负责实现业务规则和业务逻辑的代码部分。在典型的三层架构(Presentation Layer、Service Layer、Data Access Layer)中,Service层位于中间,承上启下,负责协调业务逻辑的执行,与表现层和持久层进行交互。以下是它们之间的关系:

  1. Service层的职责:
    • Service层主要负责业务逻辑的实现和协调。它包含了具体的业务逻辑方法,调用底层的DAO(Data Access Object)层执行数据库操作,同时提供事务管理、异常处理等服务。
// Service层示例
@Service
public class UserService {
    @Autowired
    private UserDao userDao;

    public User getUserById(int userId) {
        return userDao.selectUserById(userId);
    }

    public void saveUser(User user) {
        userDao.insertUser(user);
    }

    // 其他业务逻辑方法...
}
  1. 业务逻辑层的概念:
    • 业务逻辑层通常是指项目中包含的所有与业务相关的代码逻辑,包括但不限于Service层。这一层次的代码负责实现业务规则、流程以及与业务相关的处理。
// 业务逻辑层示例(可能包括多个Service类)
public class BusinessLogicManager {
    @Autowired
    private UserService userService;

    @Autowired
    private ProductService productService;

    public void processUserOrder(int userId, int productId) {
        User user = userService.getUserById(userId);
        Product product = productService.getProductById(productId);

        // 具体业务逻辑...
    }

    // 其他业务逻辑方法...
}
  1. 关系和交互:

    • Service层是业务逻辑的一部分,因此它通常属于业务逻辑层的一部分。在业务逻辑层中,可能包含多个Service类,每个Service类负责不同领域或模块的业务逻辑。
    • Service层通过依赖注入等方式获取DAO对象,与持久层进行交互,执行数据库操作。同时,Service层可能还会与其他Service层方法进行协同工作,完成复杂的业务逻辑。
  2. 分层设计的优势:

    • 通过将业务逻辑和数据访问逻辑分离到不同的层次,提高了代码的模块化、可维护性和可测试性。
    • Service层作为业务逻辑的实现者,负责业务规则的执行和协同,而DAO层则负责具体的数据库操作。

在JAVASSM项目中,这两个概念往往是紧密联系的,而具体的实现可能会因项目的规模和需求而有所不同。在典型的Spring项目中,Service层通常使用@Service注解进行标识,而业务逻辑层则是Service层及其协同工作的总称。分层的设计有助于团队合作、降低耦合度、提高系统的可维护性。

标签:逻辑,持久,框架,Service,各层次,数据库,DAO,业务,SSM
From: https://www.cnblogs.com/LoveForeverIT/p/17878018.html

相关文章

  • SSM框架中各层次作用及其关系(二)
    SSM框架中各层次作用及其关系(二)在SSM框架(Spring+SpringMVC+MyBatis)中,各层次分工协作,形成了一种分层架构,有助于提高代码的可维护性和可扩展性。以下是SSM框架中各层次的作用及其关系:表现层(PresentationLayer):使用SpringMVC框架进行开发,负责处理用户的请求和响应。控......
  • HTML学习笔记六:html-body-框架元素
    HTML学习笔记六:html-body-框架元素MDN元素查询地址所有的html的元素我们都可以通过以下地址进行相关的查询和理解。https://developer.mozilla.org/zh-CN/docs/Web/HTML/Element/meta框架标签iframe可以通过使用iframe标签在当前页面的框架内嵌入一个外部链接的网页。可用......
  • RK3568,字符设备框架:管理同主设备号、不同次设备号设备
    字符设备框架:管理同主设备号、不同次设备号设备以下代码针对迅为开发板RK3568,开发板系统是ubuntu20.04,正文以下是我写的字符设备框架,实现了管理同主设备号、不同次设备号的功能。代码:private_data_test.c#include<linux/init.h>#include<linux/module.h>#include<linux......
  • pytest框架学习-fixture
    一、fixture是什么被@pytest.fixture()装饰器装饰的函数就是一个fixture,fixture可以灵活的为不同范围的测试用例提供前置和后置操作,以及向测试用例传递测试数据。 二、fixture定义@pytest.fixture(scope=“function”,params=None,autouse=False,ids=None,name=None)参数说明......
  • VideoPipe可视化视频结构化框架更新总结(2023-12-5)
    项目地址:https://github.com/sherlockchou86/video_pipe_c往期文章:https://www.cnblogs.com/xiaozhi_5638/p/16969546.html很久没有更新了,本次记录4个,有兴趣的扫码加群交流。支持rtsp推流现在pipeline末尾支持以rtsp的方式推流,注意不需要额外的rtsp服务器,自己主机就是rtspser......
  • SQL Pretty Printer for SSMS 很不错的SQL格式化插件
    写SQL语句或者脚本时,看到凌乱的格式就头大了,于是决心找一款SQL语句格式化的工具。功夫不负有心人还真的被我找到一款很好用,很方便的SQLServer插件:SQLPrettyPrinterfor SSMS。安装SQLPrettyPrinter以后你可以在SSMS(SQLServerManagementStudio)的菜单栏看到菜单SQLB......
  • JeecgBoot 框架升级至 Spring Boot3 的实战步骤
    JeecgBoot框架升级SpringBoot3.1.5步骤JEECG官方推出SpringBoot3分支:https://github.com/jeecgboot/jeecg-boot/tree/springboot3本次更新由于属于破坏式更新,有几个生态内的组件,无法进行找到平替或无法升级,目前尚不完善,部分功能选择直接注释的方式,以下为功能列表Online......
  • SSM框架中各层次作用及其关系(一)
    SSM框架中各层次作用及其关系(一)平常学习生活中看见许多框架中的层次,都会有点懵,不知其意,抑或是看了又忘,所以这就是这篇短文的目的总体辨析JAVASSM(JavaWebApplicationwithSpring,SpringMVC,andMyBatis)是一种基于Java技术栈的Web应用开发框架,结合了Spring、SpringMVC......
  • 【实战技能】 单步运行源码分析,一期视频整明白FreeRTOS内核源码框架和运行机制,RTOS Tr
    从源码的角度来看,OS内核源码就是通过各种链表组装起来的,FreeRTOS就是下面几个链表组成的。FreeRTOS的调度,任务切换就是倒腾这几个链表。而其它的几款OS是一个链表就一撸到底了,FreeRTOS是搞了好几个。所以视频里面就重点介绍下这个,其它的支持的也做个拓展说明。搞清楚这几个链表也......
  • SSM框架中各层次作用及其关系(一)
    SSM框架中各层次作用及其关系(一)平常学习生活中看见许多框架中的层次,都会有点懵,不知其意,抑或是看了又忘,所以这就是这篇短文的目的总体辨析JAVASSM(JavaWebApplicationwithSpring,SpringMVC,andMyBatis)是一种基于Java技术栈的Web应用开发框架,结合了Spring、SpringMVC......