SpringBoot Mybatis-Plus配置及用法详解
Mybatis-Plus是Mybatis的增强工具,可以简化Mybatis的开发流程,提高开发效率。本攻略将详细介绍如何在SpringBoot中配置Mybatis-Plus,并演示其用法。
配置Mybatis-Plus
引入依赖
首先,我们需要在pom.xml文件中引入Mybatis-Plus的依赖:
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.4.3.1</version>
</dependency>
配置数据源
接下来,我们需要在application.properties文件中配置数据源:
spring.datasource.url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=Asia/Shanghai
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
配置Mybatis-Plus
最后,我们需要在配置类中配置Mybatis-Plus:
@Configuration
@MapperScan("com.example.demo.mapper")
public class MybatisPlusConfig {
@Bean
public PaginationInterceptor paginationInterceptor() {
return new PaginationInterceptor();
}
}
在上面的示例中,我们使用@MapperScan注解扫描Mapper接口,并使用@Bean注解创建PaginationInterceptor对象。
Mybatis-Plus用法
基本CRUD操作
Mybatis-Plus提供了一系列的基本CRUD操作,包括插入、更新、删除和查询。以下是一个示例:
@Service
public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements UserService {
@Override
public List<User> listAll() {
return list();
}
@Override
public User getById(Long id) {
return getById(id);
}
@Override
public boolean saveUser(User user) {
return save(user);
}
@Override
public boolean updateUser(User user) {
return updateById(user);
}
@Override
public boolean deleteUser(Long id) {
return removeById(id);
}
}
在上面的示例中,我们使用ServiceImpl类来实现UserService接口,并继承了Mybatis-Plus提供的ServiceImpl类。在ServiceImpl类中,我们可以直接调用Mybatis-Plus提供的方法来实现基本的CRUD操作。
分页查询
Mybatis-Plus还提供了分页查询的功能。以下是一个示例:
@Service
public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements UserService {
@Override
public IPage<User> listByPage(Integer pageNum, Integer pageSize) {
Page<User> page = new Page<>(pageNum, pageSize);
return page(page);
}
}
在上面的示例中,我们使用Page类来创建分页对象,并调用Mybatis-Plus提供的page方法来实现分页查询。
示例
以下是一个完整的示例,演示如何在SpringBoot中配置Mybatis-Plus,并演示其用法:
@SpringBootApplication
@MapperScan("com.example.demo.mapper")
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
@Configuration
@MapperScan("com.example.demo.mapper")
public class MybatisPlusConfig {
@Bean
public PaginationInterceptor paginationInterceptor() {
return new PaginationInterceptor();
}
}
@Service
public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements UserService {
@Override
public List<User> listAll() {
return list();
}
@Override
public User getById(Long id) {
return getById(id);
}
@Override
public boolean saveUser(User user) {
return save(user);
}
@Override
public boolean updateUser(User user) {
return updateById(user);
}
@Override
public boolean deleteUser(Long id) {
return removeById(id);
}
@Override
public IPage<User> listByPage(Integer pageNum, Integer pageSize) {
Page<User> page = new Page<>(pageNum, pageSize);
return page(page);
}
}
@RestController
public class UserController {
@Autowired
private UserService userService;
@GetMapping("/users")
public List<User> listAll() {
return userService.listAll();
}
@GetMapping("/users/{id}")
public User getById(@PathVariable Long id) {
return userService.getById(id);
}
@PostMapping("/users")
public boolean saveUser(@RequestBody User user) {
return userService.saveUser(user);
}
@PutMapping("/users")
public boolean updateUser(@RequestBody User user) {
return userService.updateUser(user);
}
@DeleteMapping("/users/{id}")
public boolean deleteUser(@PathVariable Long id) {
return userService.deleteUser(id);
}
@GetMapping("/users/page")
public IPage<User> listByPage(@RequestParam Integer pageNum, @RequestParam Integer pageSize) {
return userService.listByPage(pageNum, pageSize);
}
}
在上面的示例中,我们创建了一个SpringBoot应用程序,并在MybatisPlusConfig类中配置了Mybatis-Plus。在UserServiceImpl类中,我们使用ServiceImpl类来实现UserService接口,并继承了Mybatis-Plus提供的ServiceImpl类。在UserController类中,我们注入了UserService类的实例,并实现了基本的CRUD操作和分页查询。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Springboot mybatis-plus配置及用法详解 - Python技术站