SpringBoot整合MyBatisPlus&如何开启日志

  • Post author:
  • Post category:其他


推荐下载插件: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插件复制)



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

一、添加依赖

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


(在Spring Boot中整合MyBatisPlus时,并不需要显式地添加JDBC的包依赖。这是因为,当你添加

mybatis-plus-boot-starter

依赖时,它已经包含了对JDBC的依赖。)

<dependencies>
    <!-- MyBatis Plus依赖 -->
    <dependency>
        <groupId>com.baomidou</groupId>
        <artifactId>mybatis-plus-boot-starter</artifactId>
        <version>兼容版本</version>
    </dependency>
</dependencies>

二、配置数据库 && 数据源

2.1  配置数据库

如果您使用MySQL数据库作为数据存储,您需要导入MySQL相关的依赖包:

<dependency>
    <groupId>com.mysql.cj</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>8.0.26</version>
</dependency>



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

2.2  配置数据源

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

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

pom.xml

文件中添加Druid的依赖:

<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>druid-spring-boot-starter</artifactId>
    <version>兼容版本</version>
</dependency>

使用了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

创建一个Java配置类,用于配置Druid数据源,并注入到Spring Boot中:

@Configuration
public class DataSourceConfig {
 
    @ConfigurationProperties(prefix = "spring.datasource.druid")
    @Bean
    public DataSource dataSource() {
        return new DruidDataSource();
    }
}

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<User> {
    // 这里无需编写具体的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<User> 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接口的方法进行数据库操作,极大地简化了数据库操作的代码。注意确保数据库连接信息正确,并根据实际情况进行配置。

八、补充: 如何开启日志

在application.yml配置如下信息:

当前日志设置日志输出方式为标准输出

请注意,使用

org.apache.ibatis.logging.stdout.StdOutImpl

只会输出日志到控制台,不会保存到日志文件中。如果你需要将日志保存到文件,你可以结合其他日志库,比如

logback



log4j2

来实现。



版权声明:本文为weixin_55772633原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。