Mybatis-plus 使用分页插件
mybatis-plus 依赖:
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.4.3</version>
</dependency>
mybatis-plus 配置:
mybatis-plus:
configuration:
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
global-config:
db-config:
#数据库表的前缀
table-prefix: ms_
配置类,在这里面使用分页插件,并扫描 mapper 所在类:
@Configuration
@MapperScan("com.wf.dao")
public class MybatisPlusConfig {
//分页插件
@Bean
public MybatisPlusInterceptor mybatisPlusInterceptor(){
MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
interceptor.addInnerInterceptor(new PaginationInnerInterceptor());
return interceptor;
}
}
mapper,可以继承 myvatis-plus 中的 BaseMapper<T> 类,里面有很多常用的 CRUD 方法
记得要在 mapper 类上加上 @Mapper 注解以供 Spring 扫描
@Mapper
public interface TagMapper extends BaseMapper<Tag> {
List<Tag> findTagsByArticleId(Long id);
}
如果要添加自定义 sql ,也可以直接在接口中定义,可以选择注解或者 mapper.xml 的方式指定该方法的 sql
<?xml version="1.0" encoding="UTF-8" ?>
<!--MyBatis配置文件-->
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.wf.dao.TagMapper">
<sql id="all">
id,avatar,tag_name as tagName
</sql>
<select id="findTagsByArticleId" parameterType="long" resultType="com.wf.pojo.Tag">
select <include refid="all" /> from ms_tag
<where>
id in
(select tag_id from ms_article_tag where article_id = #{articleId})
</where>
</select>
</mapper>