练习小记2:SpringBoot整合MyBatis

Posted hjwg8

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了练习小记2:SpringBoot整合MyBatis相关的知识,希望对你有一定的参考价值。

本文主要介绍SpringBoot整合MyBatis的初步过程以及需要注意的细节。

  1. SpringBoot简介

官网https://spring.io/projects/spring-boot/

?

  1. MyBatis简介

官网:https://mybatis.org/mybatis-3/zh/index.html

MyBatis的优势:

  1. 历史发展

    MyBatis是由Ibatis发展而来的,Ibatis1.x和Ibatis2.x,都称为Ibatis,在Ibatis3.x版本及以后都称为:MyBatis

    1. 在软件三层架构中的位置

    MyBatis位于软件三层架构中的Dao层,即MyBatis主要是和数据库打交道!

    MyBatis到底是啥?

    What is MyBatis?

    MyBatis is a first class persistence framework with support for custom SQL, stored procedures and advanced mappings.?MyBatis eliminates almost all of the JDBC code and manual setting of parameters and retrieval of results. MyBatis can use simple XML or Annotations for configuration and map primitives, Map interfaces and Java POJOs (Plain Old Java Objects) to database records.

    MyBatis是一流的持久性框架,支持自定义SQL,存储过程和高级映射。 MyBatis消除了几乎所有的JDBC代码以及参数的手动设置和结果检索。 MyBatis可以使用简单的XML或注释进行配置,并将图元,映射接口和Java POJO(简单的Java对象,实际就是普通JavaBeans)映射到数据库记录。

    技术图片

  1. MyBatis的优势[重点]

    MyBatis和原生JDBC、Spring的JdbcTemplate相比有什么优势?

    1. MyBatis本身是一个框架,除了对数据表的增删改查操作之外,还支持字段映射、缓存机制。
    2. MyBatis支持动态SQL【根据不同的参数,可以拼接成不同的SQL】
    3. MyBatis支持java代码【专注于处理业务逻辑】和SQL语句【专注于处理数据】分离
    4. MyBatis还可以将表的关联关系直接映射为POJO对象的关联关系。
    5. MyBatis是一个半自动化(手写SQL)的ORM【Object Relation Mapping】框架。

    ?

    1. 运行原理

      技术图片

      1. 其他

      关于具体事例,SSM的整合,逆向工程,有空详细的写几篇文章…这里不多赘述。

      ?

      1. 整合步骤

        1. 准备数据库以及表

      技术图片

      1. 导入依赖

      导入mybatis、mysql、AlibabaDruid连接池的maven依赖

      <dependency>
      <groupId>org.mybatis.spring.boot</groupId>
      <artifactId>mybatis-spring-boot-starter</artifactId>
      <version>2.0.0</version>
      </dependency>
      <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      </dependency>
      <dependency>
      <groupId>com.alibaba</groupId>
      <artifactId>druid</artifactId>
      <version>1.1.10</version>
      </dependency>

      ?

      1. 修改SpringBoot的配置文件为application.yml

      ?

      #配置数据源
      spring:
      datasource:
      url: jdbc:mysql://localhost:3306/test?serverTimezone=GMT%2B8
      type: com.alibaba.druid.pool.DruidDataSource
      username: root
      password: root
      driver-class-name: com.mysql.jdbc.Driver
      #springboot整合mybatis
      mybatis:
      mapper-locations: classpath:mapper/*.xml

      type-aliases-package: com.kjlw.entity

      ?

      1. 创建实体类

      技术图片

      ?

      1. 创建Mapper层接口以及映射文件

      技术图片

      技术图片

      技术图片

      1. 创建Service层接口以及实现类

      技术图片

      技术图片

      技术图片

      1. 创建Controller层接口

      技术图片

      1. 在SpringBoot主启动类上添加注解扫描

      技术图片

      ?

      1. 启动并测试

      ?

      1. 注意事项

      1. 传统的ssm整合中Mapper层的接口与映射文件应在同一个包下(通常为Mapper包),但是在SpringBoot与MyBatis整合中,如果默认将Mapper接口与映射文件都放在同一包下,仍会报错,此时解决方案有两个:

        1)在resources目录下建立同样的包名,并将映射文件放入

        2)在pom文件中添加以下配置:

        技术图片

以上是关于练习小记2:SpringBoot整合MyBatis的主要内容,如果未能解决你的问题,请参考以下文章

Spring boot 学习:整合Mybatis

springboot微服务之集成mybatis和mysql整合完整详细版

SpringBoot整合Mybatis方式2:使用注解方式整合Mybatis

SpringBoot 整合其他框架 -- SpringBoot整合Mybatis

SpringBoot 整合 MyBatis-Plus 入门体验

springboot整合mybatis(配置模式+注解模式)