springboot整合mybatis-plus druid
时间: 2025-07-10 08:59:51 浏览: 9
### Spring Boot 整合 MyBatis-Plus 和 Druid 实现数据库操作与连接池配置
#### 添加依赖
要在 `pom.xml` 文件中引入必要的依赖项来支持 MyBatis-Plus 和 Druid 连接池:
```xml
<dependencies>
<!-- MyBatis Plus -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.4.2</version>
</dependency>
<!-- Druid 数据库连接池 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.2.6</version>
</dependency>
<!-- MySQL JDBC Driver (或其他适用的驱动程序) -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
</dependencies>
```
#### 修改 application.properties 配置文件
设置数据库连接参数和其他相关属性,以便使用 Druid 替代默认的 HikariCP:
```properties
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
spring.datasource.url=jdbc:mysql://localhost:3306/your_database?useUnicode=true&characterEncoding=utf8&serverTimezone=UTC
spring.datasource.username=root
spring.datasource.password=password
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
# Druid specific properties
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
```
#### 创建 Druid Configuration 类
定义一个 Java 配置类用于自定义 Druid 的行为并启用监控功能。
```java
import com.alibaba.druid.support.http.StatViewServlet;
import org.springframework.boot.web.servlet.ServletRegistrationBean;
import org.springframework.context.annotation.Bean;
public class DruidConfig {
@Bean
public ServletRegistrationBean statViewServlet() {
ServletRegistrationBean bean = new ServletRegistrationBean(new StatViewServlet(), "/druid/*");
// 设置控制台登录用户名密码
Map<String, String> initParameters = new HashMap<>();
initParameters.put("loginUsername", "admin");
initParameters.put("loginPassword", "password");
bean.setInitParameters(initParameters);
return bean;
}
}
```
#### 定义 ModelMapper 及 Mapper XML 文件
创建实体映射器接口继承 BaseMapper 接口,并编写对应的 XML 映射文件以描述 SQL 查询语句。
```java
// User.java - Entity Class
@Data
@NoArgsConstructor
@AllArgsConstructor
@Table(name="users")
public class User implements Serializable {
private Long id;
private String name;
}
// IUserMapper.java - Mapper Interface
@Mapper
public interface IUserMapper extends BaseMapper<User> {}
<!-- user_mapper.xml - Mapper File -->
<mapper namespace="com.example.mapper.IUserMapper">
<select id="selectAllUsers" resultType="com.example.model.User">
SELECT * FROM users
</select>
</mapper>
```
#### 编写 Service 层和服务实现层代码
通过调用 Mapper 方法完成业务逻辑处理。
```java
@Service
public class UserServiceImpl implements IService<User> {
@Autowired
private IUserMapper mapper;
@Override
public List<User> listAll(){
return mapper.selectList(null);
}
...
}
```
#### 构建 Controller 控制器
提供 RESTful API 来触发服务方法执行 CRUD 操作。
```java
@RestController
@RequestMapping("/api/users")
public class UserController {
@Autowired
private UserService userService;
@GetMapping("")
public ResponseEntity<List<User>> getAllUsers(){
try{
List<User> userList = userService.listAll();
if(userList.isEmpty()){
return new ResponseEntity<>(HttpStatus.NO_CONTENT);
}else{
return new ResponseEntity<>(userList, HttpStatus.OK);
}
}catch(Exception e){
return new ResponseEntity<>(null, HttpStatus.INTERNAL_SERVER_ERROR);
}
}
}
```
阅读全文
相关推荐


















