SpringBoot整合MyBatis

在 Spring+SpringMVC 中整合 MyBatis 步骤需要在配置文件里配置多个 Bean,比如MapperScannerConfigurer,SqlSessionFactoryBean 等,步骤还是比较复杂的,Spring Boot 中对此做了进一步的简化,使 MyBatis 基本上可以做到开箱即用 。

Spring Boot中整合mybatis,主要有两种方式。

方式1:xml文件

方式2:注解方式

一 方式1 使用XML方式整合Mybatis

使用Xml方式也就是将Sql语句写在**Mapper.xml文件中

1.先用idea创建一个添加mybatis需要的相关依赖的工程。

SpringBoot整合MyBatis_第1张图片

SpringBoot整合MyBatis_第2张图片

SpringBoot整合MyBatis_第3张图片

SpringBoot整合MyBatis_第4张图片

SpringBoot整合MyBatis_第5张图片

创建出来的项目结构如下:

SpringBoot整合MyBatis_第6张图片

2.准备数据库和表

SpringBoot整合MyBatis_第7张图片

3.创建表映射类

SpringBoot整合MyBatis_第8张图片

之前创建表映射类时,我们是手动添加set,get,toString方法和构造方法等,比如像这样

SpringBoot整合MyBatis_第9张图片

现在,我们可以添加一个Lombok 依赖来简化这些代码

Lombok 是一种 Java 实用工具,可用来帮助开发人员消除 Java 的冗长,尤其是对于简单的 Java 对象(POJO)。它通过注释实现这一目的。通过在开发环境中实现  Lombok,开发人员可以节省构建诸如 hashCode()和equals() 这样的方法以及以往用来分类各种 accessor 和 mutator 的大量时间。

SpringBoot整合MyBatis_第10张图片



    org.projectlombok
    lombok

添加需要的注解,通过注解来实现自动帮我们加入get,set,构造方法等。

@Data  /* 生成getter,setter ,toString等函数*/
@NoArgsConstructor /*生成无参构造函数*/
@AllArgsConstructor /*生成有参构造函数*/

SpringBoot整合MyBatis_第11张图片

package com.test.ssm.pojo;


import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

@Data  /* 生成getter,setter ,toString等函数*/
@NoArgsConstructor /*生成无参构造函数*/
@AllArgsConstructor /*生成有参构造函数*/
public class Users {

    private int id;

    private String uname;

    private String pwd;


}

4.创建mapper文件

4.1创建UsersMapper.xml文件,并添加sql语句




    

SpringBoot整合MyBatis_第12张图片

4.2 创建mapper对应的代理接口

SpringBoot整合MyBatis_第13张图片

5.创建Service层和Service的实现层

SpringBoot整合MyBatis_第14张图片

SpringBoot整合MyBatis_第15张图片

6.创建控制层(也就是web层)

SpringBoot整合MyBatis_第16张图片

7.添加配置信息

7.1添加数据库链接信息和设置mybatis中的别名信息
#数据源配置
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.url=jdbc:mysql://localhost:3306/boot?characterEncoding=utf8&serverTimezone=GMT%2B8

#mybatis配置
mybatis.type-aliases-package=com.test.ssm.pojo

SpringBoot整合MyBatis_第17张图片

7.2在应用程序入口类上配置@MapperScan扫描mapper接口文件所在包!

SpringBoot整合MyBatis_第18张图片

@MapperScan(basePackages = "com.test.ssm.mapper")
7.3 在pom.xml文件中添加识别java目录下xml文件的配置

这是Maven 带来的问题,就是 java 目录下的 xml 资源在项目打包时会被忽略掉,所以,如果 UsersMapper.xml 放在Java目录下,需要在 pom.xml 文件中再添加如下配置,避免打包时 java 目录下的 XML 文件被自动忽略掉:


    
        src/main/java
        
            **/*.xml
        
    
    
        src/main/resources
    

SpringBoot整合MyBatis_第19张图片

8.运行

SpringBoot整合MyBatis_第20张图片

SpringBoot整合MyBatis_第21张图片

二 方式2 使用注解方式整合Mybatis

方式2和方式1相比,主要是mapper文件的区别,所以除了第4和第7步有点不一样以外,其它步骤相同。

1.先用idea创建一个添加mybatis需要的相关依赖的工程。

SpringBoot整合MyBatis_第22张图片

SpringBoot整合MyBatis_第23张图片

SpringBoot整合MyBatis_第24张图片

SpringBoot整合MyBatis_第25张图片

SpringBoot整合MyBatis_第26张图片

创建出来的项目结构如下:

SpringBoot整合MyBatis_第27张图片

2.准备数据库和表

SpringBoot整合MyBatis_第28张图片

3.创建表映射类

SpringBoot整合MyBatis_第29张图片

之前创建表映射类时,我们是手动添加set,get,toString方法和构造方法等,比如像这样

SpringBoot整合MyBatis_第30张图片

现在,我们可以添加一个Lombok 依赖来简化这些代码

Lombok 是一种 Java 实用工具,可用来帮助开发人员消除 Java 的冗长,尤其是对于简单的 Java 对象(POJO)。它通过注释实现这一目的。通过在开发环境中实现  Lombok,开发人员可以节省构建诸如 hashCode()和equals() 这样的方法以及以往用来分类各种 accessor 和 mutator 的大量时间。

SpringBoot整合MyBatis_第31张图片

添加需要的注解,通过注解来实现自动帮我们加入get,set,构造方法等。

@Data  /* 生成getter,setter ,toString等函数*/
@NoArgsConstructor /*生成无参构造函数*/
@AllArgsConstructor /*生成有参构造函数*/

4.创建mapper代理接口

​ 不需要创建UsersMapper.xml文件,只需要创建UsersMapper接口就可以,将之前xml文件中的sql语句通过注解的方式写到接口中。

SpringBoot整合MyBatis_第32张图片

5.创建Service层和Service的实现层

SpringBoot整合MyBatis_第33张图片

SpringBoot整合MyBatis_第34张图片

6.创建控制层(也就是web层)

SpringBoot整合MyBatis_第35张图片

7.添加配置信息

7.1添加数据库链接信息和设置mybatis中的别名信息
#数据源配置
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.url=jdbc:mysql://localhost:3306/boot?characterEncoding=utf8&serverTimezone=GMT%2B8

#mybatis配置
mybatis.type-aliases-package=com.test.ssm.pojo

SpringBoot整合MyBatis_第36张图片

7.2在应用程序入口类上配置@MapperScan扫描mapper接口文件所在包!

SpringBoot整合MyBatis_第37张图片

8.运行

SpringBoot整合MyBatis_第38张图片

SpringBoot整合MyBatis_第39张图片

你可能感兴趣的:(Java,SpringBoot,MyBatis,spring,boot,mybatis)