下面我将为你介绍Mybatis-Plus集成Druid环境搭建的详细教程,包括环境搭建、配置和代码演示。首先,我们需要明确一下什么是Mybatis-Plus和Druid。
什么是MyBatis-Plus和Druid?
MyBatis-Plus
MyBatis-Plus(简称MP)是一个在MyBatis框架基础上的增强工具,省去了很多重复性的代码,提供了更为简洁的CRUD操作以及一些常见的操作,如分页、排序、批量插入/更新等。使用MyBatis-Plus可以极大的提高开发效率。
Druid
Druid是一款高性能、可扩展性强、入侵性小的Java数据库连接池。目前使用较广泛,被广泛用于 Alibaba、蚂蚁金服等大公司的项目中。
环境搭建
要使用MyBatis-Plus,我们需要先引入Mybatis依赖。在pom.xml中加入以下dependency:
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.3.2</version>
</dependency>
然后需要引入Druid的相关依赖。在pom.xml中加入以下dependency:
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.2.4</version>
</dependency>
配置
数据库配置
在application.yml中配置数据库连接
spring:
datasource:
url: jdbc:mysql://localhost:3306/test
driver-class-name: com.mysql.jdbc.Driver
username: root
password: root
Mybatis-Plus配置
在application.yml中添加如下配置:
mybatis-plus:
typeAliasesPackage: com.example.demo.entity
mapperLocations: classpath:/mapper/*.xml
global-config:
db-config:
id-type: auto
Druid配置
Druid提供了很多配置,可以用于监控、日志等。在application.yml中添加以下配置:
spring:
datasource:
druid:
# 配置数据源基础信息
url: jdbc:mysql://localhost:3306/test?characterEncoding=utf-8&useSSL=false
username: root
password: root
# 配置统计监控的Filter
filters: stat
# 配置初始化大小、最小、最大连接数
initial-size: 10
min-idle: 10
max-active: 100
# 配置获取连接等待超时的时间
max-wait: 60000
# 配置检测需要关闭的空闲连接间隔时间
time-between-eviction-runs-millis: 60000
# 配置一个连接在池中最小生存的时间
min-evictable-idle-time-millis: 300000
validation-query: SELECT 1
validation-query-timeout: 10000
test-while-idle: true
test-on-borrow: false
test-on-return: false
# 打开PSCache,并且指定每个连接上PSCache的大小
pool-prepared-statements: true
max-pool-prepared-statement-per-connection-size: 20
# 配置监控统计拦截的filters
filters: stat,wall,logback
# 配置DruidDataSource监控
filter:
stat:
# 开启监控统计功能
enabled: true
# SQL合并配置,合并多个取值为true的操作为一个,提高监控数据精度
merge-sql: true
# 防御SQL注入
wall:
enabled: true
# 过滤多余的注释、不安全的语句等
config:
deleteAllow: false
dropTableAllow: false
truncateAllow: false
updateWhereNoneCheck: true
selectWhereAlwayTrueCheck: true
selectHavingAlwayTrueCheck: false
selectUnionCheck: true
selectIntoOutfileCheck: true
selectIntoDumpFileCheck: true
callAllow: true
multiStatementAllow: true
commentAllow: true
strictSyntaxCheck: true
schemaCheck: false
seqAllow: true
alterTable: true
notLikeAllow: false
# 对被认为是攻击的SQL抛出异常,而不是简单的把它们阻断掉
wall-filter:
stat:
merge-sql: true
slow-sql-millis: 5000
log-slow-sql: true
slow-sql-count: 1
logback:
# 配置日志打印
enabled: true
connection-log-enabled: false
statement-log-enabled: false
resultset-log-enabled: false
代码演示
Entity定义
假设我们有一个User实体,定义如下:
@Data
public class User {
private Long id;
private String username;
private String password;
private String email;
private String phone;
private Integer age;
private Integer status;
}
Mapper定义
使用Mybatis-Plus的话,我们只需要定义一个UserMapper接口即可,如下:
public interface UserMapper extends BaseMapper<User> {
}
Service定义
定义一个UserService接口和其实现类UserServiceImpl,代码如下:
public interface UserService extends IService<User> {
}
@Service
public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements UserService {
}
Controller定义
最后,我们来定义一个UserController,定义如下:
@RestController
@RequestMapping("user")
public class UserController {
@Autowired
private UserService userService;
@GetMapping("{id}")
public User getById(@PathVariable Long id) {
return userService.getById(id);
}
@PostMapping
public boolean save(@RequestBody User user) {
return userService.save(user);
}
@PutMapping
public boolean updateById(@RequestBody User user) {
return userService.updateById(user);
}
@DeleteMapping("{id}")
public boolean deleteById(@PathVariable Long id) {
return userService.removeById(id);
}
}
现在我们就可以通过调用这些接口来实现CRUD操作了。例如,我们发送一个POST请求到/user,请求body为:
{
"username": "test",
"password": "test",
"email": "test@test.com",
"phone": "123456789",
"age": 18,
"status": 1
}
这样就可以在数据库中保存一条用户信息了。
示例2:
public int updateAgeByIdAndUsername(Integer age,String username,Long id) {
UpdateWrapper<User> userUpdateWrapper = new UpdateWrapper<>();
userUpdateWrapper.eq("username",username).eq("id",id).set("age",age);
return userMapper.update(new User(), userUpdateWrapper);
}
以上就是MyBatis-Plus集成Druid环境搭建的详细教程。希望对你有帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:MyBatis-Plus集成Druid环境搭建的详细教程 - Python技术站