1.导包
<!--mybatis-plus -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.3.0</version>
</dependency>
<!--这里要加plus-extension,不然会有NoClassDefFoundError: org/mybatis/logging/LoggerFactory错误 -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-extension</artifactId>
<version>3.3.0</version>
</dependency>
2.添加分页配置类
@Configuration
@ConditionalOnClass(value = {PaginationInterceptor.class})
public class MyBatisPlusPageConfig {
@Bean
public PaginationInterceptor paginationInterceptor() {
return new PaginationInterceptor();
}
}
3.写mapper文件,也可以自定义mapper.xml
@Mapper
public interface StudentMapper extends BaseMapper<Student> {
/**
* 查询所有学生信息
* @return
*/
List<Student> findAll(Page<Student> page, @Param("stu") PageStu pageStu);
}
相关的xml文件
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.hxj.register.mapper.StudentMapper">
<!--通用查询结果列-->
<sql id="baseSql">
id as id,
stu_id as stuId,
stu_pwd as stuPwd,
stu_name as stuName,
stu_id_card as stuIdCard,
stu_mail as stuMail,
stu_in_school as stuInSchool,
stu_dormitory as stuDormitory,
stu_one_card as stuOneCard,
stu_bedding as stuBedding,
stu_train_uniform as stuTrainUniform,
major_id as majorId,
major_name as majorName
</sql>
<sql id="baseQuerySql">
<if test="stu.stuId != null and stu.stuId != ''">
AND stu_id = #{stu.stuId}
</if>
<if test="stu.stuName != null and stu.stuName != ''">
AND stu_name like concat('%',#{stu.stuName},'%')
</if>
<if test="stu.stuDormitory != null and stu.stuDormitory != ''">
AND stu_dormitory like concat('%',#{stu.stuDormitory},'%')
</if>
<if test="stu.majorName != null and stu.majorName != ''">
AND major_name like concat('%',#{stu.majorName},'%')
</if>
</sql>
<!--查询所有学生的信息-->
<select id="findAll" resultType="com.hxj.register.pojo.Student">
select <include refid="baseSql"></include> from student_info where 1=1
<include refid="baseQuerySql"></include>
order by stu_id desc
</select>
</mapper>
4.pojo类文件要加表名【数据库表和类名不一致】
@Data
@AllArgsConstructor
@NoArgsConstructor
@TableName(value = "student_info")
public class Student implements Serializable {
@TableId(type = IdType.AUTO)
private Integer id;
private Integer stuId;
private String stuPwd;
private String stuName;
private String stuIdCard;
private String stuMail;
private Date stuInSchool;
private String stuDormitory;
private boolean stuOneCard;
private boolean stuBedding;
private boolean stuTrainUniform;
private String majorId;
private String majorName;
private boolean delFlag;
}
5.使用StudentMapper 就可以直接调用方法了
这里的studentMapper里面封装了很多方法,分页查询,查询单个,条件封装查询什么的,可以去搜看Mybatis-plus的条件封装QueryWrapper,用了QueryWrapper的话很多时候就不用了写sql语句了。
@Service
public class StudentServiceImpl implements StudentService {
@Resource
private StudentMapper studentMapper;
/**
* 多条件分页查询返数据
* @param pageStu
* @return
*/
@Override
public PageResult page(PageStu pageStu) {
Page<Student> queryPage = new Page<>(pageStu.getCurrentPage(),pageStu.getPageSize());
List<Student> pages = studentMapper.pages(queryPage, pageStu);
return new PageResult((long)pages.size(), pages);
}
}
6.提示
如果你没看懂该文章,因为文章中的一些文件是自定义的,在我另一个博客文章里面有mybatis的多条件分页查询/pageHelper,看完mybatis这篇文章再来看这个mybatisplus就会对分页有进一步的理解。