【SpringBoot篇】SpringBoot整合Mybatis实战

441 阅读3分钟

Spring Boot是基于Spring框架的快速开发框架,它简化了Spring应用程序的配置和部署。而MyBatis是一款优秀的持久层框架,它可以与Spring Boot无缝集成,提供了灵活且高效的数据库访问能力。

整合Spring Boot和MyBatis的实战步骤如下:

  1. 添加依赖:在Maven或Gradle的配置文件中添加Spring Boot和MyBatis的相关依赖。例如,可以添加spring-boot-starter-web用于Web应用开发,以及mybatis-spring-boot-starter用于整合MyBatis。
  2. 配置数据源:在application.propertiesapplication.yml配置文件中配置数据库连接信息,包括数据库URL、用户名、密码等。
  3. 创建数据访问对象(DAO):使用MyBatis的注解或XML配置文件定义数据访问对象(DAO)。DAO负责定义数据库操作的接口和方法。
  4. 编写Mapper接口:在DAO中定义的方法需要与Mapper接口进行映射。可以使用@Mapper注解标记接口,并定义相应的SQL语句。
  5. 配置MyBatis:创建一个MyBatis的配置类,使用@Configuration注解标记,并在配置类中添加@MapperScan注解指定Mapper接口的扫描路径。
  6. 编写业务逻辑代码:在Service层编写业务逻辑代码,通过注入DAO对象调用数据库操作方法。
  7. 编写控制器:使用Spring MVC编写控制器,处理客户端请求。在控制器中注入Service对象,并定义相应的请求映射和处理方法。
  8. 启动应用程序:创建一个启动类,使用@SpringBootApplication注解标记,并在main方法中调用SpringApplication.run()方法启动应用程序。

以上是整合Spring Boot和MyBatis的基本步骤。通过配置数据源、编写DAO和Mapper接口、配置MyBatis以及编写业务逻辑和控制器,可以实现高效、灵活的数据库访问和业务逻辑处理。整合Spring Boot和MyBatis能够提高开发效率,并且易于维护和扩展。

🌺创建工程

创建domain包,里面写入Book类

package com.example.domain;

public class Book {
    private Integer id;
    private String name;
    private String type;
    private String description;

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getType() {
        return type;
    }

    public void setType(String type) {
        this.type = type;
    }

    public String getDescription() {
        return description;
    }

    public void setDescription(String description) {
        this.description = description;
    }

    @Override
    public String toString() {
        return "Book{" +
                "id=" + id +
                ", name='" + name + '\'' +
                ", type='" + type + '\'' +
                ", description='" + description + '\'' +
                '}';
    }
}

写入数据层,创建数据层接口BookDao

图片.png

在BookDao中写入内容

package com.example.dao;

import com.example.domain.Book;
import org.apache.ibatis.annotations.Select;

@Mapper
public interface BookDao {
    @Select("select * from abc where id=#{1}")  //修改为自己的表名和id
    public Book getById(Integer id);
}

修改properties文件为yml文件

图片.png

在yml文件中写入内容

spring:
  datasource:
    driver-class-name: com.mysql.jdbc.Driver
    url: jdbc:mysql://localhost:3306/abc  //修改为自己的数据库名
    username: root
    password: "1234"   //密码是纯数字的要带上双引号

测试接口

package com.example;

import com.example.dao.BookDao;
import com.example.domain.Book;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;

@SpringBootTest
class Demo7ApplicationTests {

    @Autowired
    private BookDao bookDao;

    @Test
    void testGetById() {
        Book book=bookDao.getById(1);
        System.out.println(book);
    }

}

图片.png

运行成功

🎄报错解决

🎆java: 警告: 源发行版 17 需要目标发行版 17

这是因为springboot版本太高了 我们降低一下就好了

图片.png 图片.png

🎆乱码

运行后发现,之前在yml文件中的中文,运行后变成了乱码

解决方法

图片.png