MyBatis-Plus实现自定义SQL语句的分页查询
2024-01-07 17:15:57
正常开发的时候,有时候要写一个多表查询,然后多表查询之后还需要分页,MyBatis-Plus
的分页插件功能挺不错的,可以很简单实现自定义SQL的分页查询。
分页插件配置
import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class MybatisPlusConfig {
/**
* 分页插件
*/
@Bean
public MybatisPlusInterceptor mybatisPlusInterceptor() {
MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));
return interceptor;
}
}
注解方式写自定义SQL
自定义SQL返回数据的DTO类
自定义SQL返回的数据跟模型类也有点出入,需要重新新建一个DTO类,用来存储数据。
import lombok.Data;
@Data
public class UserOrgDto {
private String userName;
private String realName;
private String orgName;
}
Mapper类上注解开发
@Mapper
public interface UserMapper extends BaseMapper<User> {
@Select("select a.user_name,a.real_name,b.org_name from user a left join org b on b.id = a.org_id where a.user_status = 0")
Page<UserOrgDto> findUserPage(Page<UserOrgDto> page);
}
测试调用
@SpringBootTest
@ActiveProfiles("dev")
public class CommonApplicationTest {
@Resource
private UserMapper userMapper;
@Test
public void pageUser(){
Page<UserOrgDto> page = new Page<>(1,10);
Page<UserOrgDto> userPage= userMapper.findUserPage(page);
System.out.println(JSONUtil.toJsonStr(userPage));
}
}
MyBatis-Plus
当识别出传入page
参数,便能自动分页,十分好用方便,帮我们高效开发。
文章来源:https://blog.csdn.net/flash_love/article/details/135433266
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!