时间:2021-05-19
1.新建一个springboot工程
2.需要导入mybatis和mybatis-plus的依赖文件
<dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.1.1</version> </dependency> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>2.0.1</version> </dependency>3.application.yml配置文件
server: port: 8080spring: datasource: url: jdbc:mysql://localhost:3306/mybatisplus?useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&useSSL=false&serverTimezone=UTC username: root password: 数据库密码mybatis: mapper-locations: classpath*:mapper/*.xmlmybatis-plus: mapper-locations: classpath:/mapper/*Mapper.xmllogging: level: com.tuanzi.*: debug4.首先我们需要写一个类来配置分页插件
省略import@EnableTransactionManagement@Configuration@MapperScan("com.tuanzi.*.mapper*")public class MybatisPlusConfig { /** * 分页插件 */ @Bean public PaginationInterceptor paginationInterceptor(){ return new PaginationInterceptor(); }}5.controller类
@RestController@RequestMapping("/user")public class UserController { @Autowired UserService userService; /** * 多表关联,分页查询(1对1) * @param page * @return */ @RequestMapping("/findAll") public Result<IPage<User>> findAll(@RequestBody Page<User> page){ return userService.pages(page); } /** * 多表关联,分页查询(1对多) * @param page * @return */ @RequestMapping("/selectAll") public Result<IPage<User>> selectAll(@RequestBody Page<User> page){ return userService.pageList(page); }}6.service类
public interface UserService extends IService<User> { Result<IPage<User>> pages(Page<User> page); Result<IPage<User>> pageList(Page<User> page);}7.service实现类
@Servicepublic class UserServiceImpl extends ServiceImpl<UserMapper, User> implements UserService { @Autowired UserMapper userMapper; @Override public Result<IPage<User>> pages(Page<User> page) { IPage<User> userIPage = userMapper.Pages(page); return Result.getSuccess("分页查询成功",userIPage); } @Override public Result<IPage<User>> pageList(Page<User> page) { IPage<User> userIPage = userMapper.pageList(page); return Result.getSuccess("分页查询成功",userIPage); }}8.mapper接口
注意!!: 如果入参是有多个,需要加注解指定参数名才能在xml中取值
@Mapper@Repositorypublic interface UserMapper extends BaseMapper<User> { IPage<User> Pages(@Param("page") Page<User> page); IPage<User> pageList(@Param("page") Page<User> page);}9.xml文件
一对一关联
<!-- 一对一 通用查询映射结果 --> <resultMap id="BaseResultMap1" type="com.tuanzi.user.entity.User"> <result column="id" property="id" /> <result column="name" property="name" /> <result column="age" property="age" /> <result column="email" property="email" /> <!--assocication 一对一关联查询 可以指定联合的JavaBean对象 property="work"指定哪个属性是联合的对象 javaType:指定这个属性对象的类型 --> <association property="work" javaType="com.tuanzi.user.entity.Work"> <result column="id" property="id" /> <result column="position" property="position" /> <result column="user_id" property="userId" /> </association> </resultMap>一对多关联
<!-- 一对多 通用查询映射结果 --> <resultMap id="BaseResultMap2" type="com.tuanzi.user.entity.User"> <result column="id" property="id" /> <result column="name" property="name" /> <result column="age" property="age" /> <result column="email" property="email" /> <!-- collection定义关联结合类型的属性的封装规则 property="workList"指定哪个属性是联合的对象 ofType:指定集合里面元素的类型 --> <collection property="workList" ofType="com.tuanzi.user.entity.Work"> <result column="id" property="id" /> <result column="position" property="position" /> <result column="user_id" property="userId" /> </collection> </resultMap>SQL语句:
<select id="Pages" resultMap="BaseResultMap1"> select a.id id,a.name name,a.age age,a.email email,b.position position,b.user_id user_id from user a LEFT JOIN work b on a.id=b.user_id </select> <select id="pageList" resultMap="BaseResultMap2"> select a.id id,a.name name,a.age age,a.email email,b.position position,b.user_id user_id from user a LEFT JOIN work b on a.id=b.user_id </select>10.这样就基本完成了!我这里省略了实体类
我们运行一下,用postman测试一下结果
这里我们需要传2个参数,当然我们也可以不用传,因为mybatis-plus有默认值
来看下mybatis-plus的page源码
效果图:
最后附赠源码地址:demo
到此这篇关于springboot整合mybatis-plus实现多表分页查询的示例代码的文章就介绍到这了,更多相关springboot整合mybatis-plus多表分页查询内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
描述项目中用到boot整合mybatis-plus,个人在使用分页条件查询的时候一直查不出total,pages,终于找到原因了.环境2.1.5.RELEASE
SpringBoot整合mybatis分页操作SpringBoot整合Mybatis进行分页操作,这里需要使用Mybatis的分页插件:pageHelper,关
springboot+mybatis-plus实现内置的CRUD使用详情,具体修改删除操作内容后文也有详细说明mybatis-plus的特性无侵入:只做增强不做
前言本篇文章主要讲述的是springboot整合mybatis、druid和pagehelper并实现多数据源和分页。其中springboot整合mybatis
1、使用mybatis-plus自身的查询构造去,只需要在全局配置中添加如下配置mybatis-plus:mapper-locations:classpath: