SpringBoot集成Mybatis + 三层框架

SpringBoot介绍

SpringB是一个基于Java的开源框架,用于创建微服务,他解决了SpringFramework开发中存在的两个问题:配置繁琐、入门难度大。从而快速的构建应用程序、简化开发、提高效率

1、三层架构

1.1 什么是三层架构

  • Controller:控制层。接收前端发送的请求,对请求进行处理,并响应数据。
  • Service:业务逻辑层。处理具体的业务逻辑。
  • Dao:数据访问层(Data Access Object),也称为持久层。负责数据访问操作,包括数据的增、删、改、查。

在这里插入图片描述
作用: 单一职责原则 一个类或一个方法,就只做一件事情,只管一块功能

1.2 基于三层架构的程序执行流程

在这里插入图片描述

  • 前端发起的请求,由Controller层接收(Controller响应数据给前端)
  • Controller层调用Service层来进行逻辑处理(Service层处理完后,把处理结果返回给Controller层)
  • Serivce层调用Dao层(逻辑处理过程中需要用到的一些数据要从Dao层获取)
  • Dao层操作文件中的数据(Dao拿到的数据会返回给Service层)

三层架构的好处:复用性强、 便于维护、利用扩展

1.4 “高内聚,低耦合”

高内聚:一个模块中各个元素之间的联系的紧密程度,如果各个元素(语句、程序段)之间的联系程度越高,则内聚性越高,即 “高内聚”。
低耦合:软件中各个层、模块之间的依赖关联程序越低越好。

想要实现低耦合操作,就涉及到Spring中的两个核心概念:

  • 控制反转: Inversion Of Control,简称IOC。对象的创建控制权由程序自身转移到外部(容器),这种思想称为控制反转。
    • 使用Spring提供的注解:@Component 以及它的 衍生注解,就可以实现类交给IOC容器管理
注解说明位置
@Controller@Component的衍生注解标注在控制器类上
@Service@Component的衍生注解标注在业务类上
@Repository@Component的衍生注解标注在数据访问类上(由于与mybatis整合,用的少)
@Component声明bean的基础注解不属于以上三类时,用此注解

对象的创建权由程序员主动创建转移到容器(由容器创建、管理对象)。这个容器称为:IOC容器或Spring容器

  • 依赖注入: Dependency Injection,简称DI。容器为应用程序提供运行时,所依赖的资源,称之为依赖注入。

    • 使用Spring提供的注解:@Autowired ,就可以实现程序运行时IOC容器自动注入需要的依赖对象

    程序运行时需要某个资源,此时容器就为其提供这个资源。

    例:EmpController程序运行时需要EmpService对象,Spring容器就为其提供并注入EmpService对象

IOC容器中创建、管理的对象,称之为:bean对象

2、MyBatis

2.1 什么是MyBatis

MyBatis 是一款优秀的 持久层 框架,用于简化JDBC的开发。

ORM:对象关系映射(Object Relational Mapping),用来描述对象和数据库之间的映射关系。
持久化:将对象的数据存储到数据库中。

简而言之,ORM持久化框架做的事情就是建立对象和数据库之间的映射关系,并把对象的数据存储到数据库
在这里插入图片描述

2.1 整合流程

  • 创建springboot工程,并导入 mybatis的起步依赖、mysql的驱动包。
    在这里插入图片描述

    项目工程创建完成后,自动在pom.xml文件中,导入Mybatis依赖和MySQL驱动依赖
    
  • 数据准备
    实体类: 属性名与表中的字段名一一对应

  • 配置Mybatis
    在图形化客户端工具,连接MySQL数据库时,需要配置:
    在这里插入图片描述
    在Mybatis中要连接数据库,同样也需要以上4个参数配置。
    在springboot项目中,可以编写application.properties文件,配置数据库连接信息。我们要连接数据库,就需要配置数据库连接的基本信息,包括:driver-class-name、url 、username,password。

application.properties:

#驱动类名称
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
#数据库连接的url
spring.datasource.url=jdbc:mysql://localhost:3306/mybatis
#连接数据库的用户名
spring.datasource.username=root
#连接数据库的密码
spring.datasource.password=1234
  • 编写SQL语句
    在创建出来的springboot工程中,在引导类所在包下,在创建一个包 mapper。在mapper包下创建一个接口 UserMapper ,这是一个持久层接口(Mybatis的持久层接口规范一般都叫 XxxMapper)。

UserMapper:

import com.itheima.pojo.User;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;
import java.util.List;

@Mapper
public interface UserMapper {
    
    //查询所有用户数据
    @Select("select id, name, age, gender, phone from user")
    public List<User> list();
    
}

@Mapper注解:表示是mybatis中的Mapper接口

  • 程序运行时:框架会自动生成接口的实现类对象(代理对象),并给交Spring的IOC容器管理

@Select注解:代表的就是select查询,用于书写select查询语句

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值