整理spring整合mybatis与springboot整合mybatis plus
时间: 2025-05-29 08:01:30 浏览: 17
### Spring 和 Spring Boot 中集成 MyBatis 及 MyBatis-Plus 的方法
#### Spring 集成 MyBatis 方法
在传统的 Spring 项目中,集成 MyBatis 主要涉及以下几个方面:
1. **添加依赖**
在 `pom.xml` 文件中添加必要的依赖项。通常需要引入 MyBatis、MyBatis-Spring 和数据库驱动程序的依赖。
```xml
<!-- MyBatis -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.9</version>
</dependency>
<!-- MyBatis-Spring 整合包 -->
<dependency>
<groupId>org.mybatis.spring</groupId>
<artifactId>mybatis-spring</artifactId>
<version>2.0.6</version>
</dependency>
<!-- MySQL 数据库驱动 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.27</version>
</dependency>
```
2. **配置数据源和 SqlSessionFactory**
使用 XML 或 JavaConfig 方式定义数据源 (`DataSource`) 和 `SqlSessionFactory` Bean。以下是基于 XML 的配置示例:
```xml
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName" value="com.mysql.cj.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/testdb?useSSL=false&serverTimezone=UTC"/>
<property name="username" value="root"/>
<property name="password" value="password"/>
</bean>
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource"/>
<property name="mapperLocations" value="classpath:mappers/*.xml"/>
</bean>
```
3. **创建 Mapper 接口及其对应的 XML 映射文件**
定义接口并为其提供相应的 SQL 映射文件。例如:
```java
public interface UserMapper {
List<User> findAll();
}
```
对应的映射文件 `UserMapper.xml` 如下:
```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.example.mapper.UserMapper">
<select id="findAll" resultType="com.example.model.User">
SELECT * FROM users;
</select>
</mapper>
```
4. **扫描 Mapper 并注入到 Service 层**
使用 `<mybatis:spring-configured/>` 或者通过手动注册的方式加载所有的 Mapper 接口。
---
#### Spring Boot 集成 MyBatis-Plus 实现方法
Spring Boot 提供了更简洁的方式来集成 MyBatis-Plus,主要步骤如下:
1. **添加 Maven 依赖**
引入 MyBatis-Plus Starter 和数据库驱动依赖[^1]。
```xml
<!-- MyBatis-Plus Starter -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.4.3</version>
</dependency>
<!-- MySQL 数据库驱动 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
```
2. **配置数据源**
在 `application.yml` 或 `application.properties` 文件中设置数据源连接信息。
```yaml
spring:
datasource:
url: jdbc:mysql://localhost:3306/testdb?useSSL=false&serverTimezone=UTC
username: root
password: password
driver-class-name: com.mysql.cj.jdbc.Driver
```
3. **启用 MyBatis-Plus 功能**
创建实体类时可以使用注解来简化操作,比如 `@TableId` 注解用于指定主键生成策略[^4]。
```java
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.IdType;
@Data
public class Book {
@TableId(value = "id", type = IdType.AUTO)
private Long id;
private String title;
private String author;
}
```
4. **编写 Mapper 接口继承 BaseMapper**
继承自 `BaseMapper<T>` 后可以直接获得 CRUD 操作能力。
```java
import org.springframework.stereotype.Repository;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
@Repository
public interface BookMapper extends BaseMapper<Book> {}
```
5. **开启日志功能(可选)**
如果希望查看执行的 SQL 日志,可以在配置文件中启用日志记录[^4]。
```yaml
mybatis-plus:
configuration:
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
```
---
#### 最佳实践总结
无论是传统 Spring 还是 Spring Boot,都需要关注以下几点以提升性能和维护性:
- **合理设计表结构**:确保字段命名清晰且符合业务需求。
- **优化 SQL 查询**:避免全表扫描,善用索引。
- **分页处理**:对于大数据量场景推荐使用插件如 PageHelper 或内置分页支持[^5]。
- **事务管理**:明确事务边界,防止脏读或丢失更新等问题发生。
---
阅读全文
相关推荐


















