以下是关于“SpringBoot学习系列之MyBatis Plus整合封装的实例详解”的完整攻略。
一、前言
本文将介绍如何在SpringBoot项目中整合MyBatis Plus,并通过封装示例,展示MyBatis Plus在实际开发中的应用。MyBatis Plus是MyBatis的增强工具包,可以极大地提高开发效率。
二、基本环境
- SpringBoot 2.5.3
- MyBatis Plus 3.4.3
- MySQL 8.0
三、整合MyBatis Plus
1.添加依赖
在pom.xml
文件中,添加MyBatis Plus依赖。
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.4.3.1</version>
</dependency>
2.配置数据源
在application.yml
中配置数据源。
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/demo?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai
username: root
password: 1234
3.配置MyBatis Plus
在application.yml
中配置MyBatis Plus。
mybatis-plus:
mapper-locations: classpath*:mapper/**/*.xml
type-aliases-package: com.example.demo.entity
4.使用MyBatis Plus
在Mapper接口中继承BaseMapper
父类即可。
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.example.demo.entity.User;
public interface UserMapper extends BaseMapper<User> {
}
此时,我们就已经完成了MyBatis Plus的整合。
四、封装示例
1.分页查询
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.example.demo.entity.User;
import com.example.demo.mapper.UserMapper;
import org.springframework.stereotype.Service;
@Service
public class UserService extends ServiceImpl<UserMapper, User> {
public IPage<User> getPage(int pageNum, int pageSize) {
Page<User> page = new Page<>(pageNum, pageSize);
return this.baseMapper.selectPage(page, null);
}
}
2.嵌套结果查询
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.example.demo.entity.Classes;
import com.example.demo.entity.Student;
import com.example.demo.mapper.ClassesMapper;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* 班级Service
*/
@Service
public class ClassesService extends ServiceImpl<ClassesMapper, Classes> {
public List<Classes> listWithStudent() {
QueryWrapper<Classes> queryWrapper = Wrappers.query();
queryWrapper.nested(i -> i.eq("name", "三年级"));
queryWrapper.nested(i -> i.exists("select 1 from student where student.classes_id = classes.id"));
return this.list(queryWrapper);
}
}
以上封装示例是对MyBatis Plus的增强使用,可以大大提高开发效率。
五、总结
MyBatis Plus是一个强大的增强工具包,本文介绍了如何在SpringBoot中整合MyBatis Plus,并通过封装示例展示了MyBatis Plus在实际开发中的应用。希望本文对大家有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:SpringBoot学习系列之MyBatis Plus整合封装的实例详解 - Python技术站