20240110

2024/1/10

# 解决mybatis-plus分页查询不生效,配置分页拦截器

default <E extends IPage<T>> E page(E page, Wrapper<T> queryWrapper) {
        return this.getBaseMapper().selectPage(page, queryWrapper);
}

image-20240110105002125

这里的total永远是0

# 参考官方分页配置

image-20240110105046418

@Configuration
@MapperScan("scan.your.mapper.package")
public class MybatisPlusConfig {

    /**
     * 添加分页插件
     */
    @Bean
    public MybatisPlusInterceptor mybatisPlusInterceptor() {
        MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
        interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));//如果配置多个插件,切记分页最后添加
        //interceptor.addInnerInterceptor(new PaginationInnerInterceptor()); 如果有多数据源可以不配具体类型 否则都建议配上具体的DbType
        return interceptor;
    }
}

# 常用QueryWrapper方法

基础条件查询:

eq(String column, Object value):等于某个值
ne(String column, Object value):不等于某个值
gt(String column, Object value):大于某个值
ge(String column, Object value):大于或等于某个值
lt(String column, Object value):小于某个值
le(String column, Object value):小于或等于某个值
between(String column, Object value1, Object value2):在两个值之间
notBetween(String column, Object value1, Object value2):不在两个值之间
模糊查询:

like(String column, String value):包含指定字符串(%value%)
likeLeft(String column, String value):左侧模糊匹配(value%)
likeRight(String column, String value):右侧模糊匹配(%value)
notLike(String column, String value):不包含指定字符串
空值判断:

isNull(String column):字段值为空或null
isNotNull(String column):字段值不为空或null
集合条件:

in(String column, Collection<?> values):字段值在指定集合内
notIn(String column, Collection<?> values):字段值不在指定集合内
逻辑操作符:

and(Consumer<QueryWrapper<T>> consumer):连接一个与当前查询条件的AND子句
or(Consumer<QueryWrapper<T>> consumer):连接一个与当前查询条件的OR子句
nested(Consumer<QueryWrapper<T>> consumer):嵌套查询,用于组合更复杂的逻辑关系
排序和分页:

orderByAsc(String... columns):按指定列升序排列
orderByDesc(String... columns):按指定列降序排列
分页通常不是QueryWrapper直接处理的,而是通过Page对象结合page(Page<T> page, QueryWrapper<T> wrapper)方法实现。
自定义查询字段:

select(String... columns):指定需要查询的字段列表
其他高级用法:

exists(Consumer<SubQueryWrapper<T>> consumer):用于存在性查询
apply(String sqlSegment):添加自定义SQL片段作为查询条件
批量更新:

set(String column, Object val):设置更新时的字段值

# 数据库服务器时区与应用服务器时区不一致

在实体类修改一下时区,他会出手的

@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")

# pom打包

# 我配置了version使用maven打包插件进行打包:

<artifactId>carbon-leaderboard-server</artifactId>
<packaging>jar</packaging>
<version>1.0.0-SNAPSHOT</version>

# maven插件

    <build>
        <finalName>${project.artifactId}</finalName>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <configuration>
                    <skipTests>true</skipTests>
                </configuration>
            </plugin>
        </plugins>
    </build>

# 打的包没有版本号

这里加上版本号拼接

<finalName>${project.artifactId}-${project.version}</finalName>