SpringBoot整合Mybatis和MyBatisPlus

本文介绍Spring Boot 2.2.0版本整合Mybatis与Mybatis-Plus的方法。整合Mybatis需引入pom文件、添加配置文件并进行测试;整合Mybatis-Plus要引入pom、修改yml文件和TestMapper。还提及枚举配置及引入Mybatis-Plus后异常的处理,最后给出视频讲解地址。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

SpringBoot的版本是2.2.0

一、整合Mybatis

1-1、引入pom文件
 <!-- MySQL 连接驱动依赖 -->
 <dependency>
     <groupId>mysql</groupId>
     <artifactId>mysql-connector-java</artifactId>
     <version>8.0.19</version>
 </dependency>
 <!-- mysql数据库连接池 pool -->
 <dependency>
     <groupId>com.alibaba</groupId>
     <artifactId>druid-spring-boot-starter</artifactId>
     <version>1.1.23</version>
 </dependency>
 <!-- Spring Boot Mybatis 依赖 -->
 <dependency>
     <groupId>org.mybatis.spring.boot</groupId>
     <artifactId>mybatis-spring-boot-starter</artifactId>
     <version>2.1.3</version>
 </dependency>

1-2、添加application.yml配置文件
添加MySql配置文件
spring:
    datasource:
        type: com.alibaba.druid.pool.DruidDataSource
        driver-class-name: com.mysql.cj.jdbc.Driver
        url: jdbc:mysql://ip:prot/database?useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&useSSL=false&serverTimezone=UTC
        username: root
        password: 123456
        dbcp2:
            min-idle: 5                                 # 数据库连接池最小维持连接数
            initial-size: 5                            # 初始连接数
            max-total: 5                               # 最大连接数
            max-wait-millis: 200                      # 等待链接获取的最大超时时间

添加Mybatis配置文件
mybatis:
    type-aliases-package: com.xdx97.frame         # 所有Entity别名类所在包
    mapper-locations: classpath:mappers/**/*Mapper.xml      # mapper映射文件 - classpath:mybatis/mapper/**/*.xml

1-3、测试
Frame
public class Frame {

    private Integer id;

    private String name;

    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;
    }
}
TestMapper
import com.xdx97.frame.bean.Frame;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

@Mapper
public interface TestMapper{

    Frame selectById(@Param("idq") int id);
}

TestMapper.xml
<?xml version="1.0" encoding="UTF-8"?>
        <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.xdx97.frame.mapper.TestMapper">

<select id="selectById" parameterType="java.lang.Integer" resultType="com.xdx97.frame.bean.Frame">
        SELECT id,name FROM frame WHERE id = #{idq}
    </select>

</mapper>
TestController
import com.xdx97.frame.bean.Frame;
import com.xdx97.frame.mapper.TestMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class TestController {
    
    @Autowired
    private TestMapper testMapper;
    @GetMapping("/test")
    public Frame fun(){

        return testMapper.selectById(1);
    }
}

二、整合Mybatis-Plus

2-1、引入pom
 <!-- Spring Boot Mybatis 增强插件 -->
 <dependency>
     <groupId>com.baomidou</groupId>
     <artifactId>mybatis-plus-boot-starter</artifactId>
     <version>3.2.0</version>
 </dependency>

2-2、修改yml文件
mybatis:
  type-aliases-package: com.xdx97.frame         # 所有Entity别名类所在包

mybatis-plus:
  mapper-locations: classpath:mappers/**/*Mapper.xml      # mapper映射文件 - classpath:mybatis/mapper/**/*.xml

2-3、修改TestMapper

继承BaseMapper

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.xdx97.frame.bean.Frame;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

@Mapper
public interface TestMapper extends BaseMapper<Frame> {

    Frame selectById(@Param("idq") int id);
}

这样,baseMapper里面的方法我们就可以直接使用了
在这里插入图片描述


三、其它

3-1、如果你需要用到枚举,那么你需要多配置一个handle

配置位置如下,具体handle如果写,百度一下

mybatis-plus:
  mapper-locations: classpath:mappers/**/*Mapper.xml      # mapper映射文件 - classpath:mybatis/mapper/**/*.xml
  type-handlers-package: 
3-2、如果引入Mbatis-Plus后出现了如下异常
Invalid bound statement (not found):

如果你的xml等一些配置关联没有写错的话,那么请考虑下面这种情况

如果引用mybatis-plus-boot-starter 依赖,需要配置 mybatis-plus.mapper-locations

如果引用mybatis-plus 依赖,需要配置 mybatis.mapper-locations

四、视频讲解地址

SpringBoot胡咧咧,文件上传、Excel、HttpClient、日志、异常

https://www.bilibili.com/video/BV1kf4y1i761?p=9

Spring Boot 整合 MyBatis MyBatisPlus 可以通过以下几个步骤完成: 1. **添加依赖**: - 首先,在你的`pom.xml`文件中添加Spring BootMyBatisMyBatisPlus的支持依赖。对于MyBatis,你需要 `spring-boot-starter-data-jpa` 或者 `spring-boot-starter-jdbc`,以及MyBatis本身的依赖。对于MyBatisPlus,需要引入 `mybatis-plus-spring-boot-starter`。 ```xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> </dependency> <!-- 或者 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jdbc</artifactId> </dependency> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-spring-boot-starter</artifactId> <version>版本号</version> </dependency> ``` 记得替换`版本号`为实际的MyBatisPlus最新稳定版版本2. **配置数据库连接**: 在`application.properties`或`application.yml`中设置JDBC相关的配置,包括数据源、驱动程序等信息。 ```properties spring.datasource.url=jdbc:mysql://localhost:3306/mydb?serverTimezone=UTC spring.datasource.username=root spring.datasource.password=password spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver ``` 3. **创建实体Mapper**: - 定义实体类,让它们继承自`BaseEntity`(MyBatisPlus的基类),并保持一致的命名规则。 - 创建Mapper接口,继承自MyBatisPlus提供的`BaseMapper`。 ```java import com.baomidou.mybatisplus.core.mapper.BaseMapper; public interface UserMapper extends BaseMapper<User> { } ``` 4. **扫描MapperRepository**: 在Spring Boot的配置类上使用`@MapperScan``@ComponentScan`注解,指定扫描MapperRepository的位置。 ```java import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.data.jpa.repository.config.EnableJpaRepositories; @Configuration @EnableJpaRepositories(basePackages = "com.example.demo.repository") @MapperScan("com.example.demo.mapper") // 替换为你自己的Mapper包名 public class AppConfig { @Bean public DataSource dataSource() { // 数据源配置... } } ``` 5. **注入Repository**: 在服务类中,你可以直接注入实现了对应接口的`UserRepository`,然后像操作普通Spring Data JPARepository那样使用。 ```java @Service public class UserService { private final UserRepository userRepository; @Autowired public UserService(UserRepository userRepository) { this.userRepository = userRepository; } public User getUserById(Long id) { return userRepository.findById(id).orElse(null); } }
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值