详解SpringBoot整合Mybatis框架

文章目录

  • 前言
  • 一、创建SpringBoot项目
  • 二、配置Mybatis
    • 1. 在pom.xml文件中添加jar包依赖
    • 2. SpringBoot整合Mybatis配置文件
  • 三、创建Mapper接口
  • 四、创建XML映射文件
  • 五、测试
  • 总结


前言

人生是一段旅程,走过的路,就是你编织的生活,我们无法预知以后的路途,但是,我们能把握现在的自己,珍惜身边的一切,脚踏实地的走,走好自己的路,不在生命里给自己留下遗憾的风景!

对于企业开发来说,稳定性便捷性是最重要的两个特性,SpringBoot更像是一个框架的框架,能够实现对多个框架的快速整合和自动装配,很好的满足了企业的需求。在学习了一段时间的框架知识、做了几个项目之后,现在回过头来对SpringBoot装配各种框架进行一个回顾,本文记录SpringBoot如何整合Mybatis框架。


提示:以下是本篇文章正文内容,下面案例可供参考

一、创建SpringBoot项目

详解SpringBoot整合Mybatis框架_第1张图片
阿里云的地址如下:

http://start.aliyun.com

详解SpringBoot整合Mybatis框架_第2张图片
详解SpringBoot整合Mybatis框架_第3张图片
详解SpringBoot整合Mybatis框架_第4张图片

下图为创建好的SpringBoot项目

在这里可能会出现左侧的项目导航栏出java文件和recourse文件显示的都是普通的文件夹,右侧没有maven项目的图标,这个是因为还没有全部下载完成,等待下载完成即可


二、配置Mybatis

配置Mybatis的步骤为:

  1. 在pom.xml文件中添加jar包依赖
  2. SpringBoot项目整合Mybatis配置文件
    (1) 连接数据库
    (2) SpringBoot整合Mybatis
  3. 创建Mapper接口
  4. 创建XML映射文件

1. 在pom.xml文件中添加jar包依赖

在这里要添加依赖的jar包有三种,分别为SpringBoot整合Mybatis包,数据库驱动包,JDBC包
SpringBoot整合Mybatis包:

<dependency>
	<groupId>org.mybatis.spring.bootgroupId>
	<artifactId>mybatis-spring-boot-starterartifactId>
	<version>2.2.0version>
dependency>

数据库驱动包:

<dependency>
	<groupId>mysqlgroupId>
	<artifactId>mysql-connector-javaartifactId>
	<scope>runtimescope>
dependency>

JDBC包:

<dependency>
	<groupId>org.springframework.bootgroupId>
	<artifactId>spring-boot-starter-jdbcartifactId>
dependency>

作者的idea版本为2020.2,在高版本的idea中maven项目没有了自动导入依赖的功能,需要我们自己手动去添加依赖

2. SpringBoot整合Mybatis配置文件

首先先在项目工程中创建pojo包,路径为:src->main->java->(自己的项目路径)->创建pojo包
详解SpringBoot整合Mybatis框架_第5张图片

SpringBoot的配置参数多数都在application.properties或application.yml文件中进行配置,新创建好的SpringBoot项目中默认的配置文件为application.properties,因为yml文件相较于properties文件来说,更具备层次性,所以作者将文件后缀名改为了yml

接着在pojo包下创建User实体类,用于之后测试是否整合成功

User类代码:

@Data
@Accessors(chain = true)
public class User implements Serializable {
     
    private Integer id;
    private String name;
    private Integer age;
    private String sex;
}

实现序列化的作用在于:保证数据在传输时的完整性

接着在yml文件中配置如下参数:

spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/jt?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf8&autoReconnect=true&allowMultiQueries=true
    username: root
    # 如果数据库密码以数字0开头,则必须使用""号包裹 -> 例如"01234"
    password: 123456

# SpringBoot整合Mybatis配置
mybatis:
  # 定义别名映射包:实现对象映射
  type-aliases-package: cn.shijimo.springboot_mybatis.pojo
  # 加载映射文件,一个接口对应一个映射文件
  mapper-locations: classpath:/mappers/*.xml
  # 开启驼峰映射
  configuration:
    map-underscore-to-camel-case: true

参数解释:

  1. serverTimezone=Asia/Shanghai (选择时区为亚洲上海)
  2. useUnicode=true&characterEncoding=utf8 (是否使用unicode编码及设定字符集)
  3. autoReconnect=true (是否自动重连)
  4. allowMultiQueries=true (是否允许批量操作)

三、创建Mapper接口

在项目路径下新建名为mapper的包,在包中创建名为UserMapper的接口


Mapper接口代码:

public interface UserMapper {
     
    List<User> selectAll();
}

四、创建XML映射文件

在resource目录下新建文件夹命名为mappers,在mappers文件夹中创建xml文件命名为UserMapper.xml

UserMapper.xml文件代码:



<mapper namespace="cn.shijimo.springboot_mybatis.mapper.UserMapper">
    <sql id="allCols">
        id,name,age,sex
    sql>

    <select id="selectAll" resultType="User">
        select
        <include refid="allCols">include>
        from demo_user;
    select>
mapper>

之前作者写过如何配置Mapper.xml文件的模板,可以参考链接
IDEA添加Mapper.xml文件模板


五、测试

在测试类中测试是否整合成功,首先在主类上添加包扫描注解,告诉SpringBoot中Mapper接口在哪里


接口无法通过new关键字来创建实例,而自动注入时Spring容器内部会为接口创建代理对象 -> JDK的动态代理对象

测试类代码:

@SpringBootTest
public class SpringbootMybatisApplicationTests {
     
    @Autowired
    private UserMapper userMapper;

    @Test
    public void selectAllTest() {
     
        List<User> userList = userMapper.selectAll();
        for (User user : userList) {
     
            System.out.println(user);
        }
    }
}

运行结果:


总结

以上便为SpringBoot整合Mybatis框架的过程,形象地说,Spring Boot就像一种快速、有效的“万能胶”,SpringBoot几乎能将Java领域的所有框架与Spring框架迅速地整合在一起,而且由于Spring Boot为这些框架的整合提供了自动配置功能,因此整合它们几乎不需要提供额外的配置信息——不仅不需要提供XML配置,甚至连注解都可以省略。

想干就干,要干就干的漂亮,即使没有人为你鼓掌,至少还能够勇敢的自我欣赏。当你为自己的坎坷人生不断鼓掌,加油、奋进时,必将迎来别人的掌声与喝彩!

你可能感兴趣的:(架构师成长道路,mybatis,spring,boot,java,整合)