推荐下载插件: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
来实现。