Singerw's Repository Singerw's Repository
首页
  • 相关文章

    • HTML相关文章
    • CSS相关文章
    • JavaScript相关文章
  • 学习笔记

    • JavaScript笔记
    • ES6笔记
    • Vue笔记
  • 相关文章

    • Spring相关文章
    • SpringBoot相关文章
    • MyBatis相关文章
    • MySQL相关文章
  • 学习笔记

    • SpringBoot笔记
    • Spring笔记
    • MyBatis笔记
    • MySQL笔记
    • JavaWeb笔记
    • JavaCore笔记
  • 学习笔记

    • Linux笔记
    • Git笔记
    • 技术文档
  • 偏门技术

    • GitHub技巧
    • 博客搭建
    • 科学上网
  • 安装教程

    • JDK
    • MySQL
    • Node.js
    • Linux
  • 终身学习
  • 面试人生
  • 心情杂货
  • 生活随笔
  • 归档
  • 标签
GitHub (opens new window)

Singerw

谁能够凭爱意将富士山私有
首页
  • 相关文章

    • HTML相关文章
    • CSS相关文章
    • JavaScript相关文章
  • 学习笔记

    • JavaScript笔记
    • ES6笔记
    • Vue笔记
  • 相关文章

    • Spring相关文章
    • SpringBoot相关文章
    • MyBatis相关文章
    • MySQL相关文章
  • 学习笔记

    • SpringBoot笔记
    • Spring笔记
    • MyBatis笔记
    • MySQL笔记
    • JavaWeb笔记
    • JavaCore笔记
  • 学习笔记

    • Linux笔记
    • Git笔记
    • 技术文档
  • 偏门技术

    • GitHub技巧
    • 博客搭建
    • 科学上网
  • 安装教程

    • JDK
    • MySQL
    • Node.js
    • Linux
  • 终身学习
  • 面试人生
  • 心情杂货
  • 生活随笔
  • 归档
  • 标签
GitHub (opens new window)
  • SpringBoot学习笔记
  • SpringBoot优点与简单介绍
  • SpringBoot源码简单解析
  • 自定义banner
  • 配置文件存储位置分析
  • 多环境配置及配置文件位置
  • 配置热部署
  • SpringBoot自动配置原理
  • SpringBoot整合MyBatis
    • 1、新建一个SpringBoot项目
    • 2、基本的配置设置
      • 配置MyBatis第一种情况
      • 配置MyBatis第二种情况
      • application.yml文件示例
      • pom.xml文件示例
  • 集成PageHelper分页插件
  • 集成logback日志
  • 整合Druid数据源
  • 整合Swagger接口文档
  • Thymeleaf模板引擎使用
  • JPA的使用
  • JPA+Redis
  • Maven资源导出问题终极版
  • SpringBoot锁 -Mybatis
  • 《SpringBoot》学习笔记
Singerw
2021-09-25

SpringBoot整合MyBatis

# SpringBoot整合MyBatis

# 1、新建一个SpringBoot项目

# 2、基本的配置设置

# 配置MyBatis第一种情况

步骤一:

对于整合mybatis框架,我们需要在SpringBoot配置文件application.yaml中对其进行配置:

server:
  port: 8080
  
spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://127.0.0.1:3306/joint_force?useSSL=true&useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai
    username: root
    password: 795200

mybatis:
  #定义别名包
  type-aliases-package: com.singerw.pojo
  #添加xml文件的依赖
  mapper-locations: classpath:/mybatis/mappers/*.xml
  #开启驼峰映射规则
  configuration:
    map-underscore-to-camel-case: true
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
  1. 定义别名包(type-aliases-package)

    将实体对象pojo路径进行了封装,若在mapper.xml文件中,resulrType不写包名,只写类名,就会自动执行别名包进行拼接;若写了包名+类名,就执行自己写好的;

  2. 第二项mapper-locations是总用的,配置mapper.xml映射文件的路径

  3. 驼峰映射规则(map-underscore-to-camel-case)

    开启驼峰映射规则后,底层会根据切分将数据库用"_"连接的字段名切分组合成由java驼峰规则的命名; 目的:主要为了简化mybatis映射的过程; 规则:user_id-->去除下划线userid-->之后首字母大写userId-->之后属性名一致,就可以正常映射了 注意:如果开启了驼峰规则,必须要满足条件.

步骤二:

​ 我们平常整合mybatis在业务中编写Dao层时,我们通常会在数据层的接口上添加@Mapper注解,让其交由mybatis管理,通过其方法映射的SQL语句来操作数据库;

@Mapper
public interface ArticleMapper {

    List<Article> getArticleByID(Integer aID);

    List<Article> getArticleList();
}
1
2
3
4
5
6
7
  • @mapper或者@repository注解在dao层的应用;
  • @Mapper是mybatis自身带的注解; 使用@mapper后,不需要在spring配置中设置扫描地址,通过mapper.xml里面的namespace属性对应相关的mapper类,spring将动态的生成Bean后注入到Service层。
  • @repository则需要在Spring中配置扫描包地址,然后生成dao层的bean,之后被注入到ServiceImpl中。

也就是说,如果用了@repository,我们的测试类上(程序启动入口)需要加入。

@SpringBootTest
@MapperScan("com.singerw.dao")
class ApplicationTests {

    @Autowired
    private ArticleDao articleDao;

    @Test
    void getArticleTest() {
        List<Article> article = articleDao.getArticleByID(1);
        System.out.println(article);
    }
}
1
2
3
4
5
6
7
8
9
10
11
12
13

# 配置MyBatis第二种情况

也可以通过在启动类上添加@MapperScan(Mapper接口路径),利用包扫描形式为接口创建代理对象

@SpringBootApplication
@MapperScan("com.singerw.dao")
public class Application {

    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}
1
2
3
4
5
6
7
8

需要注意的是:

在springboot程序入口类处添加注解@MapperScan(“com.singerw.mapper或者dao”),如果程序入口类处没有添加注解@MapperScan,每个dao层接口要添加注解@Mapper。

public interface ArticleDao {

    List<Article> getArticleByID(Integer aID);

    List<Article> getArticleList();

}
1
2
3
4
5
6
7
mybatis:
  #定义别名包
  type-aliases-package: com.singerw.pojo
  #添加xml文件的依赖
  mapper-locations: classpath:/mybatis/mappers/*.xml
  #开启驼峰映射规则
  configuration:
    map-underscore-to-camel-case: true
1
2
3
4
5
6
7
8

# application.yml文件示例

在SpringBoot配置文件application.yaml配置数据库连接,项目端口等信息

server:
  port: 8080

spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://127.0.0.1:3306/joint_force?useSSL=true&useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai
    username: root
    password: 795200

mybatis:
  type-aliases-package: com.singerw.pojo
  mapper-locations: classpath*:/mapping/*.xml
  configuration:
    map-underscore-to-camel-case: true
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

# pom.xml文件示例

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    
    <!--mybatis-spring的启动器-->
    <dependency>
        <groupId>org.mybatis.spring.boot</groupId>
        <artifactId>mybatis-spring-boot-starter</artifactId>
        <version>2.2.0</version>
    </dependency>

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-devtools</artifactId>
        <scope>runtime</scope>
        <optional>true</optional>
    </dependency>
    
    <!--数据库驱动-->
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <scope>runtime</scope>
    </dependency>
    
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>
    
</dependencies>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
编辑 (opens new window)
#SpringBoot
SpringBoot自动配置原理
集成PageHelper分页插件

← SpringBoot自动配置原理 集成PageHelper分页插件→

最近更新
01
Maven资源导出问题终极版
10-12
02
《MyBatis-Plus》学习笔记
10-07
03
MyBatis-Plus—配置日志
10-07
更多文章>
Theme by Vdoing | Copyright © 2020-2021 版权所有 | repository.singerw.com
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式
×