SpringBoot整合MyBatisPlus

推荐下载插件:MyBatisX

插件的优点:

1. mapper and xml can jump back and forth:mapper和xml可以来回跳转

2. mybatis.xml,mapper.xml prompt:mybatis.xml,mapper.xml提示

3. mapper and xml support auto prompt like jpa(reference MybatisCodeHelperPro):mapper和xml支持像jpa一样的自动提示(参考MybatisCodeHelperPro)

4. integrate mybatis generator Gui (copy fromfree mybatis plugin):集成mybatis生成器Gui(从免费mybatis插件复制)

SpringBoot整合MyBatisPlus_第1张图片

将Spring Boot与MyBatis Plus整合需要完成以下几个步骤:

 一、添加依赖

在项目的pom.xml文件中MyBatis Plus的依赖。请确保版本兼容性,并引入需要的数据库驱动程序。示例:


    
    
        com.baomidou
        mybatis-plus-boot-starter
        兼容版本
    

二、配置数据源

application.properties(或application.yml)文件中配置数据库连接信息和数据源相关属性。示例:

# 数据库连接配置
spring.datasource.url=jdbc:mysql://localhost:3306/mydatabase
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

如果你使用了数据库连接池也要导入相应的依赖和配置,这里以Druid为例:

Druid是一个强大的数据库连接池和监控工具,如果你希望使用Druid作为连接池,需要导入Druid的依赖。可以通过以下方式在pom.xml文件中添加Druid的依赖:


    com.alibaba
    druid-spring-boot-starter
    兼容版本

使用了Druid,还需要加上Druid相关配置(spring.datasource.type=com.alibaba.druid.pool.DruidDataSource必须加上,其他配置可不加)


# Druid配置
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
spring.datasource.druid.initial-size=5
spring.datasource.druid.min-idle=5
spring.datasource.druid.max-active=20
spring.datasource.druid.test-on-borrow=false
spring.datasource.druid.test-while-idle=true
spring.datasource.druid.time-between-eviction-runs-millis=60000
spring.datasource.druid.min-evictable-idle-time-millis=30000
spring.datasource.druid.pool-prepared-statements=true
spring.datasource.druid.max-pool-prepared-statement-per-connection-size=20
spring.datasource.druid.filters=stat,wall,log4j
spring.datasource.druid.connectionProperties=druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000

 SpringBoot整合Druid ------> SpringBoot整合Druid_Maiko Star的博客-CSDN博客

三、配置MyBatis Plus (不需要可以忽略)

创建一个配置类,用于配置MyBatis Plus相关的配置。示例:

@Configuration
@MapperScan("com.example.mapper") // 指定Mapper接口的扫描路径
public class MyBatisPlusConfig {

    @Bean
    public PaginationInterceptor paginationInterceptor() {
        return new PaginationInterceptor(); // 分页插件
    }
}

如果不需要配置MyBatisPlus的话,@MapperScan("com.example.mapper") 可以放在启动类上

四、创建实体类 

创建一个与数据库表对应的实体类,并可以使用MyBatis Plus的注解来完成实体类与数据库表之间的映射关系。

假设有一个数据库表user,包含以下字段:

CREATE TABLE `user` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT,
  `username` varchar(50) DEFAULT NULL,
  `email` varchar(100) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

创建实体类可以如下:(如果表名和实体类对应的上,即名字相同,那么其中注解也可以省略)

import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;

@Data
@TableName("user") // 指定数据库表名
public class User {
    @TableId(type = IdType.AUTO) // 指定主键生成策略为自动增长
    private Long id;

    private String username;

    private String email;
}

五、创建Mapper接口

创建一个继承自BaseMapper的Mapper接口,用于进行数据库操作。无需编写SQL语句,MyBatis Plus会基于实体类的注解自动生成相应的SQL语句。

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;

@Mapper
public interface UserMapper extends BaseMapper {
    // 这里无需编写具体的SQL语句,继承BaseMapper后即可直接使用MyBatis Plus提供的通用CRUD方法进行数据库操作
}

如果不用@Mapper注解,需要使用@MapperScan(“对应mapper包的路径”)替换

六、进行数据库操作 

在业务逻辑层或控制器层中,通过自动注入Mapper接口对象,调用其方法进行数据库操作。示例:

@Service
public class UserService {

    @Autowired
    private UserMapper userMapper;

    public User getUserById(Long id) {
        return userMapper.selectById(id);
    }

    public List getAllUsers() {
        return userMapper.selectList(null);
    }

    public int insertUser(User user) {
        return userMapper.insert(user);
    }

    public int updateUser(User user) {
        return userMapper.updateById(user);
    }

    public int deleteUser(Long id) {
        return userMapper.deleteById(id);
    }
}

七、总结

        以上是整合Spring Boot与MyBatis Plus的完整过程。通过添加依赖、配置数据源、配置MyBatis Plus、创建实体类和Mapper接口,即可完成Spring Boot与MyBatis Plus的整合。这样,就可以在业务逻辑层或控制器层中直接调用Mapper接口的方法进行数据库操作,极大地简化了数据库操作的代码。注意确保数据库连接信息正确,并根据实际情况进行配置。

你可能感兴趣的:(SpringBoot,spring,boot,java,后端)