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就會對分頁有進一步的了解。